Microsoft Visual J++. Создание приложений и аплетов на языке Java

Добавление буферизации


А что, если нам нужен не простой выходной поток, а буферизованный?

Здесь нам может помочь класс BufferedOutputStream. Вот два конструктора, предусмотренных в этом классе:

public BufferedOutputStream(OutputStream out);

public BufferedOutputStream(OutputStream out, int size);     

Первый из них создает буферизованный выходной поток на базе потока класса OutputStream, а второй делает то же самое, но дополнительно позволяет указать размер буфера в байтах.

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

  • создается поток, связанный с файлом, как объект класса FileOutputStream;
  • ссылка на этот поток передается конструктору класса BufferedOutputStream, в результате чего создается буферизованный поток, связанный с файлом;
  • ссылка на буферизованный поток, созданный на предыдущем шаге, передается конструктору класса DataOutputStream, который и создает нужный поток
  • Вот фрагмент исходного текста программы, который создает выходной буферизованный поток для записи форматированных данных в файл с именем output.txt:

    DataOutputStream OutStream;

    OutStream = new DataOutputStream(

      new BufferedOutputStream(

      new FileOutputStream("output.txt")));

    Аналогичным образом создается входной буферизованный поток для чтения форматированных данных из того же файла:

    DataInputStream InStream;

    InStream = new DataInputStream(

      new BufferedInputStream(

      new FileInputStream("output.txt")));



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