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

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

  • Что такое «символьная ссылка»

  • Классы символьных потоков

  • Методы, определенные в классе InputStream

  • Методы, определенные в классе OutputStream

  • Наиболее часто употребляемые методы вывода данных, определенные в классе DataOutputStream

  • Наиболее часто употребляемые методы ввода данных, определенные в классе DatalnputStream

  • Методы, определенные в классе Reader

  • Методы, определенные в классе Writer

  • Применение оболочек типов для преобразования символьных строк в числа

  • На каком паттерне основана иерархия потоков ввода/вывода

  • Что такое декоратор Пример в IO

  • Что такое паттерн адаптер

  • (I/O) Что такое сокет Чем он определяется

  • (I/O, Сокеты) На какие три диапазона делятся номера портов

  • Как расшифровывается POSIX Что это такое Зачем

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


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

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


    DeflaterOutputStream - компрессия данных в формате deflate.

    Deflater - компрессия данных в формат ZLIB

    ZipOutputStream - потомок DeflaterOutputStream для компрессии данных в формат Zip.

    GZIPOutputStream - потомок DeflaterOutputStream для компрессии данных в формат GZIP.

    InflaterInputStream - декомпрессия данных в формате deflate.

    Inflater - декомпрессия данных в формате ZLIB

    ZipInputStream - потомок InflaterInputStream для декомпрессии данных в формате Zip.

    GZIPInputStream - потомок InflaterInputStream для декомпрессии данных в формате GZIP.

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


    Для различных операционных систем символ разделителя различается. Для Windows это \, для Linux - /.

    В Java получить разделитель для текущей операционной системы можно через обращение к статическому полю File.separator.

    Что такое «символьная ссылка»?


    Символьная (символическая) ссылка (также «симлинк», Symbolic link) — специальный файл в файловой системе, в котором, вместо пользовательских данных, содержится путь к файлу, который должен быть открыт при попытке обратиться к данной ссылке (файлу). Целью ссылки может быть любой объект: например, другая ссылка, файл, каталог или даже несуществующий файл (в последнем случае, при попытке открыть его, должно выдаваться сообщение об отсутствии файла).

    Символьные ссылки используются для более удобной организации структуры файлов на компьютере, так как:

    позволяют для одного файла или каталога иметь несколько имён и различных атрибутов;

    свободны от некоторых ограничений, присущих жёстким ссылкам (последние действуют только в пределах одной файловой системы (одного раздела) и не могут ссылаться на каталоги).

    Классы байтовых потоков


    Класс байтового потока Описание

    BufferedlnputStream Буферизованный поток ввода

    BufferedOutputStream Буферизованный поток вывода

    ByteArrayInputStream Поток ввода для чтения из байтового массива

    ByteArrayOutputStream Поток вывода для записи в байтовый массив

    DatalnputStream Поток ввода с методами для чтения стандартных типов данных Java

    DataOutputStream Поток вывода с методами для записи стандартных типов данных Java

    FileInputStream Поток ввода для чтения из файла

    FileOutputStream Поток вывода для записи в файл

    FilterlnputStream Подкласс, производный от класса InputStream

    FilterOutputStream Подкласс, производный от класса OutputStream

    InputStream Абстрактный класс, описывающий потоковый ввод

    ObjectInputStream Поток для ввода объектов

    ObjectOutputStream Поток для вывода объектов

    OutputStream Абстрактный класс, описывающий потоковый вывод

    PipedlnputStream Поток конвейерного ввода

    PipedOutputStream Поток конвейерного вывода

    PrintStream Поток вывода с методами print() и println()

    PushbacklnputStream Поток ввода с возвратом прочитанных байтов в поток

    RandomAccessFile Класс, поддерживающий файловый ввод-вывод с произвольным доступом

    SequenceInputStream Поток ввода, сочетающий в себе несколько потоков ввода для поочередного чтения данных из них

    Классы символьных потоков


    Класс символьного потока Описание

    BufferedReader Буферизованный поток ввода символов

    BufferedWriter Буферизованный поток вывода символов

    CharArrayReader Поток ввода для чтения из символьного массива

    CharArrayWriter Поток вывода для записи в символьный массив

    FileReader Поток ввода для чтения символов из файла

    FileWriter Поток вывода для записи символов в файл

    FilterReader Класс для чтения символов с фильтрацией

    FilterWriter Класс для записи символов с фильтрацией

    InputStreamReader Поток ввода с преобразованием байтов в символы

    LineNumberReader Поток ввода с подсчетом символьных строк

    OutputStreamWriter Поток вывода с преобразованием символов в байты

    PipedReader Поток конвейерного ввода

    PipedWriter Поток конвейерного вывода

    PrintWriter Поток вывода с методами print() и println()

    PushbackReader Поток ввода с возвратом прочитанных символов в поток

    Reader Абстрактный класс, описывающий потоковый ввод символов

    StringReader Поток ввода для чтения из символьной строки

    StringWriter Поток вывода для записи в символьную строку

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

    Методы, определенные в классе InputStream


    Метод Описание

    int available() Возвращает количество байтов, доступных для чтения

    void close() Закрывает поток ввода. При последующей попытке чтения из потока генерируется исключение IOException

    void mark(int numBytes) Ставит отметку на текущей позиции в потоке. Отметка доступна до тех пор, пока на будет прочитано количество байтов, определяемое параметром numBytes

    boolean markSupported() Возвращает логическое значение true, если методы mark() и reset() поддерживаются в вызывающем потоке

    int read() Возвращает целочисленное представление следующего байта в потоке. Если достигнут конец потока, возвращается значение -1

    int read(byte buffer[]) Предпринимает попытку прочитать количество байтов, определяемое выражением buffer, length, в массив buffer и возвращает фактическое количество успешно прочитанных байтов. Если достигнут конец потока, возвращается значение -1

    int read(byte buffer[], int offset, int numBytes) Предпринимает попытку прочитать количество байтов, определяемое параметром numBytes, в массив buffer, начиная с элемента buffer[offset]. Если достигнут конец потока, возвращается значение -1

    void reset() Устанавливает указатель ввода на помеченной ранее позиции

    long skip (long numBytes) Пропускает количество байтов, определяемое параметром numBytes, в потоке ввода. Возвращает фактическое количество пропущенных байтов

    Методы, определенные в классе OutputStream


    Метод Описание

    void close() Закрывает выходной поток. При последующей попытке записи в поток генерируется исключение IOExceptionВыводит содержимое выходного буфера вывода в

    void flush() Выводит содержимое выходного буфера вывода в целевой поток. По завершении этой операции выходной буфер очищается

    void write(int b) Записывает один байт в поток вывода. Параметр b относится к типу int, что позволяет вызывать данный метод в выражениях, не приводя результат их вычисления к типу byte

    void write(byte buffer[]) Записывает массив в поток вывода

    void write(byte buffer[], int offset, int numBytes) Записывает в поток вывода часть массива buffer длиной numBytes байтов, начиная с элемента buffer[offset]

    Наиболее часто употребляемые методы вывода данных, определенные в классе DataOutputStream


    Метод вывода данных Описание

    void writeBoolean (boolean val) Записывает логическое значение, определяемое параметром val

    void writeByte (int,val) Записывает младший байт целочисленного значения, определяемого параметром val

    void writeChar (int,val) Записывает значение, определяемое параметром val, интерпретируя его как символ

    void writeDouble (double val) Записывает значение типа double, определяемое параметром val

    void writeFloat (float val) Записывает значение типа float, определяемое параметром val

    void writelnt(int val) Записывает значение типа int, определяемое параметром val

    void writeLong (long val) Записывает значение типа long, определяемое параметром val

    void writeShort (int val) Записывает целочисленное значение, определяемое параметром val, преобразуя его в тип short

    Наиболее часто употребляемые методы ввода данных, определенные в классе DatalnputStream


    Метод ввода данных Описание

    boolean readBoolean() Читает значение типа boolean

    byte readByte() Читает значение типа byte

    char readChar() Читает значение типа char

    double readDouble() Читает значение типа double

    float readFloat() Читает значение типа float

    int readlnt() Читает значение типа int

    long readLong() Читает значение типа long

    short readShort() Читает значение типа short

    Методы, определенные в классе Reader


    Метод Описание

    abstract void close() Закрывает поток ввода данных. При последующей попытке чтения генерируется исключение IOException

    void mark (int numChars) Ставит отметку на текущей позиции в потоке. Отметка доступна до тех пор, пока на будет прочитано количество символов, определяемое параметром numChars

    boolean markSupported() Возвращает логическое значение true, если поток поддерживает методы mark() и reset()

    int read() Возвращает целочисленное представление очередного символа из потока ввода. Если достигнут конец потока, возвращается значение -1

    int read(char buffer[]) Предпринимает попытку прочитать количество байтов, определяемое выражением buffer, length, в массив buffer и возвращает фактическое количество успешно прочитанных символов. Если достигнут конец потока, возвращается значение -1

    abstract int read(char buffer[], int offset, int numChars) Предпринимает попытку прочитать количество символов, определяемое параметром numChars, в массив buffer, начиная с элемента buffer [ offset]. Если достигнут конец потока, возвращается значение -1

    int read(CharBuffer buffer) Предпринимает попытку заполнить буфер, определяемый параметром buffer, символами, прочитанными из входного потока. Если достигнут конец потока, возвращается значение -1. CharBuffer — это класс, представляющий последовательность символов, например строку

    boolean ready() Возвращает логическое значение true, если следующий запрос на получение символа может быть выполнен немедленно. В противном случае возвращается логическое значение false

    void reset() Устанавливает указатель ввода на помеченной ранее позиции

    long skip(long numChars) Пропускает количество символов, определяемое параметром numChars, в потоке ввода. Возвращает фактическое количество пропущенных символов

    Методы, определенные в классе Writer


    ния последовательности символов

    Writer append(CharSequence chars, int begin, int end) Записывает символы chars в конец текущего потока, начинаяс позиции, определяемой параметром begin, и кончая позицией, определяемой параметром end. Возвращает ссылку на поток. CharSequence — это интерфейс, в котором описаны только операции чтения последовательности символов

    abstract void close() Закрывает поток вывода. При последующей попытке записи в поток генерируется исключение IOException

    abstract void flush() Выводит текущее содержимое буфера на устройство. В результате выполнения данной операции буфер очищается

    void write(int ch) Записывает в вызывающий поток вывода один символ. Параметр ch относится к типу int, что позволяет вызывать данный метод в выражениях, не приводя результат их вычисления к типу char

    void write(char buffer[]) Записывает в вызывающий поток вывода массив символов buffer

    abstract void write(char buffer[], int offset, int numChars) Записывает в вызывающий поток вывода количество символов, определяемое параметром numChars, из массива buffer, начиная с элемента buffer[ offset ]

    void write(String str) Записывает в вызывающий поток вывода символьную строку str

    void write(String str, int offset, int numChars) Записывает в вызывающий поток вывода часть numChars символов из строки str, начиная с позиции, обозначаемой параметром offset

    Применение оболочек типов для преобразования символьных строк в числа


    Оболочки типов в Java представляют собой классы, которые инкапсулируют простые типы. Оболочки типов необходимы, поскольку простые типы не являются объектами, что ограничивает их применение. Так, простой тип нельзя передать методу по ссылке. Для того чтобы исключить ненужные ограничения, в Java были предусмотрены классы, соответствующие каждому из простых типов.

    Оболочками типов являются классы Double, Float, Long, Integer, Short, Byte, Character и Boolean. Эти классы предоставляют обширный ряд методов, позволяющих полностью интегрировать простые типы в иерархию объектов Java. Кроме того, в классах-оболочках числовых типов содержатся методы, предназначенные для преобразования числовых строк в соответствующие двоичные эквиваленты. Эти методы приведены ниже. Каждый из них возвращает двоичное значение, соответствующее числовой строке.

    Оболочка типа Метод преобразования

    Double static double parseDouble(String str) throws NumberFormatException

    Float static float parseFloat(String str) throws NumberFormatException

    Long static long parseLong(String str) throws NumberFormatException

    Integer static int parselnt(String str) throws NumberFormatException

    Short static short parseShort(String str) throws NumberFormatException

    Byte static byte parseByte(String str) throws NumberFormatException

    Оболочки целочисленных типов также предоставляют дополнительный метод синтаксического анализа, позволяющий задавать основание системы счисления.

    На каком паттерне основана иерархия потоков ввода/вывода?


    Объекты классов Java, которые используются для ввода/вывода, для обеспечения необходимой функциональности наслаиваются друг на друга. Такая модель взаимодействия объектов поддерживается в паттерне «Декоратор». В этом паттерне при создании потока нужно использовать несколько объектов.

    Что такое декоратор? Пример в IO


    Декоратор — это структурный паттерн, который позволяет добавлять объектам новые поведения на лету, помещая их в объекты-обёртки.

    inputstream, bytearrayinputstream, stringbuilderinputstreams и так далее являются основанными элементами. Filterinputstream - это базовый класс для классов декораторов. Фильтр входных потоков (например, bufferedinput stream) может выполнять дополнительные функции при чтении потоков или записи в них.

    Что такое паттерн адаптер?


    Адаптер (Adapter) – это структурный паттерн, который позволяет адаптировать интерфейс класса в соответствии с требованиями системы. То есть, адаптер — это своеобразная прослойка между классами, приводящая интерфейс одного класса к используемому в другом.

    OutputStreamWriter мы легко «адаптирует» два интерфейса классов Writer и OutputStream друг другу.
    Класс InputStreamReader — это классический адаптер, он адаптирует InputStream и Reader

    (I/O) Что такое сокет? Чем он определяется?


    1) Сокет (socket — разъём) - программный интерфейс для обмена данными между процессами.

    2) Процессы могут исполняться как на одном компьютере, так на разных, связанных сетью.

    3) Иначе говоря, сокет - объект, представляющий конечную точку соединения.

    4) Сокет определяется IP-адресом компьютера и номером порта. Для протокола TCP номер порта - целое число от 0 до 65535.

    (I/O, Сокеты) На какие три диапазона делятся номера портов?


    1) Общеизвестные (системные): 0—1023 /1024=2¹⁰/

    2) Зарегистрированные (пользовательские): 1024—49151 /49152=2¹⁶-2¹⁴/

    3) Динамические (частные): 49152—65535 /65536=2¹⁶/

    Как расшифровывается POSIX? Что это такое? Зачем?


    1) Portable Operating System Interface for uniX

    2) POSIX - это набор стандартов, описывающих API операционной системы, а также набор классов/приложений, реализующих эти API.

    3) POSIX создан для совместимости различных UNIX-based систем и переносимости между ними программ.

    Как управлять атрибутами файла?
    1   ...   5   6   7   8   9   10   11   12   13


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