Для чего используется SequenceInputStream?

Класс SequenceInputStream позволяет сливать вместе несколько экземпляров класса InputStream. Конструктор принимает в качестве аргумента либо пару объектов класса InputStream, либо интерфейс Enumeration.

Во время работы класс выполняет запросы на чтение из первого объекта класса InputStream и до конца, а затем переключается на второй. При использовании интерфейса работа продолжится по всем объектам класса InputStream. По достижении конца, связанный с ним поток закрывается. Закрытие потока, созданного объектом класса SequenceInputStream, приводит к закрытию всех открытых потоков.

 

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

Класс DataInputStream представляет поток ввода и предназначен для записи данных примитивных типов, таких, как int, double и т.д. Для каждого примитивного типа определен свой метод для считывания:

● boolean readBoolean(): считывает из потока булевое однобайтовое значение

● byte readByte(): считывает из потока 1 байт

● char readChar(): считывает из потока значение char

● double readDouble(): считывает из потока 8-байтовое значение double

● float readFloat(): считывает из потока 4-байтовое значение float

● int readInt(): считывает из потока целочисленное значение int

● long readLong(): считывает из потока значение long

● short readShort(): считывает значение short

● String readUTF(): считывает из потока строку в кодировке UTF-8

 

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

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

● BufferedOutputStream - буферизированный выходной поток;

● ByteArrayOutputStream - все данные, посылаемые в этот поток, размещаются в предварительно созданном буфере;

● DataOutputStream - выходной поток байт, включающий методы для записи стандартных типов данных Java;

● FileOutputStream - запись данных в файл на физическом носителе;

● FilterOutputStream - абстрактный класс, предоставляющий интерфейс для классов-надстроек, которые добавляют к существующим потокам полезные свойства;

● ObjectOutputStream - выходной поток для записи объектов;

● PipedOutputStream реализует понятие выходного канала.

 

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

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

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

● CharArrayReader - входной поток, который читает из символьного массива;

● FileReader - входной поток, читающий файл;

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

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

● LineNumberReader - входной поток, подсчитывающий строки;

● PipedReader - входной канал;

● PushbackReader - входной поток, позволяющий возвращать символы обратно в поток;

● StringReader - входной поток, читающий из строки.

 

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

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

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

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

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

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

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

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

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

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

 

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

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

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

 

Чем отличаются и что общего у InputStream, OutputStream, Reader, Writer?

● InputStream и его наследники - совокупность для получения байтовых данных из различных источников;

● OutputStream и его наследники - набор классов определяющих потоковый байтовый вывод;

● Reader и его наследники определяют потоковый ввод символов Unicode;

● Writer и его наследники определяют потоковый вывод символов Unicode.

 

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

● 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)

 

Существует ли возможность перенаправить потоки стандартного ввода/вывода?

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

● setIn(InputStream) - для ввода;

● setOut(PrintStream) - для вывода;

● setErr(PrintStream) - для вывода ошибок.

 

34. Классы для работы с файловой системой.

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

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

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: