Соответствие узлов и потоков
|
|
|
|
Символьные |
|
|
Байтовые |
|
|
|
|
|
|
|
|
||
|
Тип |
|
|
|||||
|
|
|
потоки |
|
|
|
|
|
|
|
|
|
|
потоки |
|
||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Файл |
|
|
FileReader |
|
FileInputStream |
|
|
|
|
|
|
|
||||
|
|
|
FileWriter |
|
FileOutputStream |
|
||
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
||
|
Память |
|
|
CharArrayReader |
|
ByteArrayInputStream |
|
|
|
(массив) |
|
|
CharArrayWriter |
|
ByteArrayOutputStrearn |
|
|
|
|
|
|
|
|
|
|
|
|
Память |
|
|
StringReader |
|
N/A |
|
|
|
(строка) |
|
|
StringWriter |
|
|
||
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
Процессы |
|
|
PipedReader |
|
PipedInputStream |
|
|
|
|
|
PipedWriter |
|
PipedOutputStream |
|
||
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Иерархия дочерних классов для InputStream
Иерархия дочерних классов для OutputStream
Классы FileInputStream/FileOutputStream
http://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html
http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
Классы ObjectInputStream/ObjectOutputStream
•Java API предлагает стандартный механизм (называемый сериализацией), который полноценно автоматизирует процесс записи и чтение объектов из/в потоков.
•При записи объекта сначала записывается имя класса, далее следует описание данных-членов класса, а затем располагаются все значения всех полей объекта.
•При чтении объекта считывается имя класса и его описание для размещения класса в памяти, а затем выполняется чтение всех полей из потока для наполнения только что созданного экземпляра.
•Постоянные места хранения (такие как файлы, например)
также могут быть использованы для сериализации.
Классы ObjectInputStream/ObjectOutputStream
http://docs.oracle.com/javase/7/docs/api/java/io/ObjectInputStream.html
http://docs.oracle.com/javase/7/docs/api/java/io/ObjectOutputStream.html
Класс PipeInputStream
http://docs.oracle.com/javase/7/docs/api/java/io/PipedInputStream.html
Класс PipeInputStream
http://docs.oracle.com/javase/7/docs/api/java/io/PipedInputStream.html
Класс PipeOutputStream
http://docs.oracle.com/javase/7/docs/api/java/io/PipedOutputStream.html
Порядок записи в байтовых потоках
DataOutputStream -> OutputStream
DatalnputStream -> InputStream
T readT()
boolean readBoolean()
void readFully(byte[] b)
void readFully(byte[] b, int off, int len)
void writeT(T e)
void writeBoolean(boolean e)
Запись данных всегда производится в формате
MSB (Most Significant Byte)