Байтовые и символьные потоки

Java определяет два типа потоков: байтовые и символьные. Байтовые потоки предоставляют удобные средства для управления вводом и выводом байтов. Байтовые потоки используются, например, при чтении и записи бинарных данных. Символьные потоки предлагают удобные возможности управления вводом и выводом символов. Они используют кодировку Unicode и, таким образом, могут быть интернационализированы. Кроме того, в некоторых случаях символьные потоки более эффективны, чем байтовые.

Исходная версия Java (Java 1.0) не включала символьных потоков, и потому весь ввод-вывод был байт-ориентированным. Символьные потоки были добавлены в Java 1.1, и при этом некоторые байт-ориентированные классы и методы устарели. Вот почему старый код, к котором не используются символьные потоки, должен быть, где возможно, обновлен, чтобы воспользоваться их преимуществами.

Еще один момент: на самом низком уровне весь ввод-вывод по-прежнему байт-ориентирован. Символьные потоки просто предлагают удобные и эффективные средства управления символами.

Обзор байт-ориентированных и символ-ориентированных потоков представлен в следующих разделах.