Главная страница
Навигация по странице:

  • Как преобразовать считанные байты в символы Какой класс для этого используется

  • Отличие Scanner ’ a от BufferedReader ’ a

  • Расскажи про класс File Как создать новый файл на жестком диске

  • Какие методы класса File вы знаете

  • Ревью 5. Что такое потоки вводавывода Как это реализовано в Java 3 Классынадстройки потоков вводавывода 4


    Скачать 110.73 Kb.
    НазваниеЧто такое потоки вводавывода Как это реализовано в Java 3 Классынадстройки потоков вводавывода 4
    АнкорРевью 5
    Дата24.12.2022
    Размер110.73 Kb.
    Формат файлаdocx
    Имя файлаРевью 5.docx
    ТипДокументы
    #861326
    страница5 из 13
    1   2   3   4   5   6   7   8   9   ...   13

    Какие подклассы класса Writer вы знаете, для чего они предназначены?


    Writer - абстрактный класс, описывающий символьный вывод;

    BufferedWriter - буферизованный выходной символьный поток;

    CharArrayWriter - выходной поток, который пишет в символьный массив;

    FileWriter - выходной поток, пишущий в файл;

    FilterWriter - абстрактный класс, предоставляющий интерфейс для классов-надстроек;

    OutputStreamWriter - выходной поток, транслирующий байты в символы;

    PipedWriter - выходной канал;

    PrintWriter - выходной поток символов, включающий методы print() и println();

    StringWriter - выходной поток, пишущий в строку;

    Как преобразовать считанные байты в символы? Какой класс для этого используется?


    Консольный ввод в Java выполняется с помощью считывания из объекта System.in. Чтобы получить символьный поток, который присоединен к консоли, нужно перенести ("упаковывать") System.in в объект типа BufferedReader. Класс BufferedReader поддерживает буферизированный входной поток. Обычно используется следующий его конструктор:

    BufferedReader (Reader inputReader)

    где inputReader — поток, который связан с создающимся экземпляром класса BufferedReader. Reader — абстрактный класс. Один из его конкретных подклассов — это InputStreamReader, который преобразует байты в символы. Чтобы получить InputStreamReader-объект, который связан с System.in, используйте следующий конструктор:

    InputStreamReader (InputStream inputStream)

    В конструкторе можно выбирать кодировку.

    Отличие Scannera от BufferedReadera?


    Cканнер очень сильно проигрывает по быстродействию, он примерно в 1000 раз медленнее, чем BufferedReader. Но у сканнера уже впилены удобные функции по разбору текста на разные данные (целые числа, дробные числа, текст и тп), когда у bufferedreader-a их придется отдельно парсить.

    Итог - если данных мало, то удобнее сканнер, если много или важна быстрота - то однозначно bufferedreader

    Расскажи про класс File? Как создать новый файл на жестком диске?


    Класс File, определенный в пакете java.io, не работает напрямую с потоками. Его задачей является управление информацией о файлах и каталогах. Хотя на уровне операционной системы файлы и каталоги отличаются, но в Java они описываются одним классом File.

    Экземпляры класса File неизменяемы — после создания абстрактный путь, представленный этим объектом, никогда не изменится.

    В зависимости от того, что должен представлять объект File - файл или каталог, мы можем использовать один из конструкторов для создания объекта:

    File(String путь_к_каталогу)

    File(String путь_к_каталогу, String имя_файла)

    File(File каталог, String имя_файла)

    Класс File имеет ряд методов, которые позволяют управлять файлами и каталогами.

    Какие методы класса File вы знаете?


    boolean createNewFile(): делает попытку создать новый файл;

    boolean delete(): делает попытку удалить каталог или файл;

    boolean mkdir(): делает попытку создать новый каталог;

    boolean renameTo(File dest): делает попытку переименовать файл или каталог;

    boolean exists(): проверяет, существует ли файл или каталог;

    String getAbsolutePath(): возвращает абсолютный путь для пути, переданного в конструктор объекта;

    String getName(): возвращает краткое имя файла или каталога;

    String getParent(): возвращает имя родительского каталога;

    boolean isDirectory(): возвращает значение true, если по указанному пути располагается каталог;

    boolean isFile(): возвращает значение true, если по указанному пути находится файл;

    boolean isHidden(): возвращает значение true, если каталог или файл являются скрытыми;

    long length(): возвращает размер файла в байтах;

    long lastModified(): возвращает время последнего изменения файла или каталога;

    String[] list(): возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге;

    File[] listFiles(): возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге.
    Если объект File представляет каталог, то его метод isDirectory() возвращает true. И поэтому мы можем получить его содержимое - вложенные подкаталоги и файлы с помощью методов list() и listFiles(). Работа с файлами аналогична работе с каталога.
    1. Создайте файл с классом java.io.File

    Вам нужно использовать метод File.createNewFile(). Этот метод возвращает логическое значение:

    истина, если файл выполнен.

    false, если файл уже существует или операция по какой-то причине не открывается.

    Этот метод также генерирует исключение java.io.IOException, когда он не может создать файл.

    Когда мы создаем объект File, передавая имя файла, он может быть с абсолютным путем, или мы можем предоставить только имя файла, или мы можем предоставить относительный путь. Для неабсолютного пути объект File пытается найти файлы в корневом каталоге проекта.
    Если мы запустим программу из командной строки, для неабсолютного пути объект File попытается найти файлы из текущего каталога. Экземпляры класса File являются неизменяемыми; то есть, после создания абстрактный путь, представленный объектом File, никогда не изменится.

    2. Создайте файл с классом java.io.FileOutputStream

    Если вы хотите создать новый файл и в то же время, если хотите записать в него некоторые данные, вы можете использовать метод записи FileOutputStream. В Java FileOutputStream является классом потока байтов. Чтобы записать данные в файл, вы должны преобразовать данные в байты, а затем сохранить их в файл.

    Класс FileOutputStream хранит данные в виде отдельных байтов. Может использоваться для создания текстовых файлов. Файл представляет собой хранилище данных на втором носителе, таком как жесткий диск или компакт-диск. Метод FileOutputStream.write() автоматически создает новый файл и записывает в него содержимое.

    3. Создайте файл с помощью Java.nio.file.Files – Java NIO

    Files.write() – лучший способ создать файл, и он должен быть вашим предпочтительным подходом в будущем, если вы его еще не используете. Это хороший вариант, потому что нам не нужно беспокоиться о закрытии ресурсов ввода-вывода. Каждая строка представляет собой последовательность символов и записывается в файл последовательно, каждая строка заканчивается разделителем строк платформы.

    4. Java также может создавать временные файлы

    Создание временного файла в java может потребоваться во многих сценариях, но в основном это происходит во время модульных тестов, где вы не хотите сохранять результаты. Как только тестовый пример закончен, вас не волнует содержимое файла.

    Создание временного файла с использованием java.io.File.createTempFile()

    Для создания временного файла используются следующие два метода.

    1. createTempFile(Path, String, String, FileAttribute… attrs) – создает файл tmp в указанном каталоге.

    Вышеуказанный метод принимает четыре аргумента.

    Путь -> указать каталог, в котором будет создан файл.

    Строка -> чтобы упомянуть префикс имени файла. Используйте ноль, чтобы избежать префикса.

    Строка -> чтобы упомянуть суффикс имени файла. т.е. расширение файла. Используйте null, чтобы использовать .tmp в качестве расширения.

    attrs -> Это необязательно, чтобы упоминать список атрибутов файла, чтобы установить атомарно при создании файла

    Например. Files.createTempFile(path,null, null); – создает временный файл с расширением .tmp по указанному пути

    2. createTempFile(String, String, FileAttribute) – создает временный файл во временном каталоге по умолчанию системы / сервера.

    https://java-blog.ru/osnovy/kak-sozdat-fayl-java
    1   2   3   4   5   6   7   8   9   ...   13


    написать администратору сайта