Потоки ввода/вывода
Все классы пакета java.io можно разделить на две группы: классы, создающие поток (data sink), и классы, управляющие потоком (data processing).
Классы, создающие потоки, в свою очередь, можно разделить на пять групп:
- классы, создающие потоки, связанные с файлами:
FileReader FilelnputStream
FileWriterFile Outputstream
RandomAccessFile
- классы, создающие потоки, связанные с массивами:
CharArrayReader ByteArraylnputStream
CharArrayWriter ByteArrayOutputStream
- классы, создающие каналы обмена информацией между подпроцессами:
PipedReader PipedlnputStream
PipedWriter PipedOutputStream
- классы, создающие символьные потоки, связанные со строкой:
StringReader
StringWriter
- классы, создающие байтовые потоки из объектов Java:
ObjectlnputStream
ObjectOutputStream
Слева перечислены классы символьных потоков, справа – классы байтовых потоков.
Классы, управляющие потоком, получают в своих конструкторах уже имеющийся поток и создают новый, преобразованный поток. Можно представлять их себе как "переходное кольцо", после которого идет труба другого диаметра.
Четыре класса созданы специально для преобразования потоков:
- FilterReader
- FilterlnputStream
- FilterWriter
- FilterOutputStream