Иллюстрированный самоучитель по Java

Потоки ввода/вывода

Сами по себе эти классы бесполезны – они выполняют тождественное преобразование. Их следует расширять, переопределяя методы ввода/вывода. Но для байтовых фильтров есть полезные расширения, которым соответствуют некоторые символьные классы. Перечислим их.

Четыре класса выполняют буферизованный ввод/вывод:

  • BufferedReader
  • BufferedlnputStream
  • BufferedWriter
  • BufferedOutputStream

Два класса преобразуют поток байтов, образующих восемь простых типов Java, в эти самые типы:

  • DatalnputStream
  • DataOutputStream

Два класса содержат методы, позволяющие вернуть несколько символов или байтов во входной поток:

  • PushbackReader
  • PushbacklnputStream

Два класса связаны с выводом на строчные устройства – экран дисплея, принтер:

  • PrintWriter
  • PrintStream

Два класса связывают байтовый и символьный потоки:

  • inputstreamReader – преобразует входной байтовый поток в символьный поток;
  • Outputstreamwriter – преобразует выходной символьный поток в байтовый поток.

Класс streamTokenizer позволяет разобрать входной символьный поток на отдельные элементы (tokens) подобно тому, как класс stringTokenizer, рассмотренный нами в главе 5, разбирал строку.

Из управляющих классов выделяется класс sequenceinputstream, сливающий несколько потоков, заданных в конструкторе, в один поток, и класс LineNumberReader, "умеющий" читать выходной символьный поток построчно. Строки в потоке разделяются символами '\n' и/или '\г'.

Этот обзор классов ввода/вывода немного проясняет положение, но не объясняет, как их использовать. Перейдем к рассмотрению реальных ситуаций.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.