Философия Java

Источники и приемники данных


Почти все оригинальные классы потоков ввода/вывода имеют соответствующие классы Reader и Writer для обеспечения родных манипуляций в Unicode. Однако есть некоторые места, где байт-ориентированные InputStream и OutputStream являются корректным решением; на практике библиотеки из java.util.zip скорее байт-ориентированные, чем символьно-ориентированные. Так что наиболее разумным подходом будет попытка использования классов Reader и Writer там, где это возможно, и вы обнаружите ситуации, когда будете вынуждены использовать байт-ориентированные библиотеки, потому что ваш код не будет компилироваться.

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

Источники и приемники: класс Java 1.0 Соответствующий класс Java 1.1



InputStream Reader

конвертер: InputStreamReader

OutputStream Writer

конвертер: OutputStreamWriter

FileInputStream FileReader
FileOutputStream FileWriter
StringBufferInputStream StringReader
(соответствующего класса нет) StringWriter
ByteArrayInputStream CharArrayReader
ByteArrayOutputStream CharArrayWriter
PipedInputStream PipedReader
PipedOutputStream PipedWriter

В общем случае вы обнаружите, что интерфейсы для этих двух различных иерархий сходны, если не идентичны.



Содержание раздела