Государственный


Класс BufferedOutputStream



бет11/25
Дата05.04.2024
өлшемі4.07 Mb.
#497748
1   ...   7   8   9   10   11   12   13   14   ...   25
Java. Потоки ввода-вывода. Работа с файлами. Кравчук А.С., Кравчук А.И., Кремень Е.В

Класс BufferedOutputStream


Класс BufferedOutputStream создает буфер для потоков вывода. Этот буфер накапливает выводимые байты без постоянного обращения к устройству. И когда буфер заполнен, производится запись данных.
BufferedOutputStream определяет два конструктора:

  • BufferedOutputStream(OutputStream outputStream)

  • BufferedOutputStream(OutputStream outputStream,

int bufSize)
Первый параметр (outputStream) - это поток вывода, который унаследован от OutputStream, а второй параметр - размер буфера.
Рассмотрим на примере записи в файл.


Пример.


Результат работы программы:


Класс BufferedOutputStream в конструкторе принимает в качестве параметра объект OutputStream - в данном случае это файловый поток вывода FileOutputStream. И также производится запись в файл. Опять же BufferedOutputStream не добавляет много новой функциональности, он просто оптимизирует действия потока вывода. Дадим пояснения по использованному в примере методу void write(byte[] buf, int off, int len). Он записывает len байт из массива байтов buf, начиная со смещения off, в буферизованный выходной поток. Обычно этот метод сохраняет байты из данного массива в буфер потока, при необходимости сбрасывая буфер в базовый выходной поток. Однако если запрошенная длина больше либо равна размеру буфера потока, то этот метод очищает буфер и записывает


байты непосредственно в базовый выходной поток.


Класс BufferedInputStream


Класс BufferedInputStream накапливает вводимые данные в специальном буфере без постоянного обращения к устройству ввода. Класс BufferedInputStream определяет два конструктора:

  • BufferedInputStream(InputStream inputStream)

  • BufferedInputStream(InputStream inputStream,

int bufSize)
Первый параметр (inputStream) - это поток ввода, с которого данные будут считываться в буфер. Второй параметр - размер буфера.
Например, буферизируем считывание данных из потока
FileInputStream.
Пример.

Результат работы программы:




Класс BufferedInputStream в конструкторе принимает объект fin. В данном случае таким объектом является экземпляр класса FileInputStream.
Как и все потоки ввода BufferedInputStream обладает методом read(), который считывает данные. Соответственно здесь также считываются данные с помощью метода read().
Класс BufferedInputStream просто оптимизирует производительность при работе с потоком FileInputStream.
Естественно, вместо FileInputStream может использоваться любой другой класс, который унаследован от InputStream.




Достарыңызбен бөлісу:
1   ...   7   8   9   10   11   12   13   14   ...   25




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет