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

  • Какие классы позволяют преобразовать байтовые потоки в символьные и обратно

  • Какие классы позволяют ускорить чтение/запись за счет использования буфера

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

  • Что вы знаете об интерфейсе FileFilter

  • Как выбрать все элементы определенного каталога по критерию (например, с определенным расширением)

  • Что вы знаете о RandomAccessFile

  • Какие режимы доступа к файлу есть у RandomAccessFile

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


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

    В чем отличие класса PrintWriter от PrintStream?


    Прежде всего, в классе PrintWriter применен усовершенствованный способ работы с символами Unicode и другой механизм буферизации вывода: в классе PrintStream буфер вывода сбрасывался всякий раз, когда вызывался метод print() или println(), а при использовании класса PrintWriter существует возможность отказаться от автоматического сброса буферов, выполняя его явным образом при помощи метода flush().

    Кроме того, методы класса PrintWriter никогда не создают исключений. Для проверки ошибок необходимо явно вызвать метод checkError().

    Какие классы позволяют преобразовать байтовые потоки в символьные и обратно?


    OutputStreamWriter — «мост» между классом OutputStream и классом Writer. Символы, записанные в поток, преобразовываются в байты.

    InputStreamReader — аналог для чтения. При помощи методов класса Reader читаются байты из потока InputStream и далее преобразуются в символы.

    Какие классы позволяют ускорить чтение/запись за счет использования буфера?


    BufferedInputStream(InputStream in)/BufferedInputStream(InputStream in, int size),

    BufferedOutputStream(OutputStream out)/BufferedOutputStream(OutputStream out, int size),

    BufferedReader(Reader r)/BufferedReader(Reader in, int sz),

    BufferedWriter(Writer out)/BufferedWriter(Writer out, int sz)

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


    File работает непосредственно с файлами и каталогами. Данный класс позволяет создавать новые элементы и получать информацию существующих: размер, права доступа, время и дату создания, путь к родительскому каталогу.

    Что вы знаете об интерфейсе FileFilter?


    Интерфейс FileFilter применяется для проверки, попадает ли объект File под некоторое условие. Этот интерфейс содержит единственный метод boolean accept(File pathName). Этот метод необходимо переопределить и реализовать. Например:

    public boolean accept(final File file) {

    return file.isExists() && file.isDirectory();

    }

    Как выбрать все элементы определенного каталога по критерию (например, с определенным расширением)?


    Метод File.listFiles() возвращает массив объектов File, содержащихся в каталоге. Метод может принимать в качестве параметра объект класса, реализующего FileFilter. Это позволяет включить в список только те элементы, для которых метод accept возвращает true (критерием может быть длина имени файла или его расширение).

    Что вы знаете о RandomAccessFile?


    Класс java.io.RandomAccessFile обеспечивает чтение и запись данных в произвольном месте файла. Он не является частью иерархии InputStream или OutputStream. Это полностью отдельный класс, имеющий свои собственные (в большинстве своем native) методы. Объяснением этого может быть то, что RandomAccessFile имеет во многом отличающееся поведение по сравнению с остальными классами ввода/вывода так как позволяет, в пределах файла, перемещаться вперед и назад.

    RandomAccessFile имеет такие специфические методы как:

    getFilePointer() для определения текущего местоположения в файле;

    seek() для перемещения на новую позицию в файле;

    length() для выяснения размера файла;

    setLength() для установки размера файла;

    skipBytes() для того, чтобы попытаться пропустить определённое число байт;

    getChannel() для работы с уникальным файловым каналом, ассоциированным с заданным файлом;

    методы для выполнения обычного и форматированного вывода из файла (read(), readInt(), readLine(), readUTF() и т.п.);

    методы для обычной или форматированной записи в файл с прямым доступом (write(), writeBoolean(), writeByte() и т.п.).

    Так же следует отметить, что конструкторы RandomAccessFile требуют второй аргумент, указывающий необходимый режим доступа к файлу - только чтение ("r"), чтение и запись ("rw") или иную их разновидность.

    Какие режимы доступа к файлу есть у RandomAccessFile?


    "r" открывает файл только для чтения. Запуск любых методов записи данных приведет к выбросу исключения IOException.

    "rw" открывает файл для чтения и записи. Если файл еще не создан, то осуществляется попытка создать его.

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

    "rwd" открывает файл для чтения и записи подобно "rws", но требует от системы синхронно записывать изменения на физический носитель только при каждом изменении содержимого файла. Если изменяются метаданные, синхронная запись не требуется.
    1   ...   5   6   7   8   9   10   11   12   13


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