Java BufferedOutputStream (с примерами)

В этом руководстве мы узнаем о Java BufferedOutputStream и его методах с помощью примеров.

BufferedOutputStreamКласс java.ioпакета используются с другими выходными потоками для записи данных (в байтах) более эффективен.

Он расширяет OutputStreamабстрактный класс.

Работа BufferedOutputStream

BufferedOutputStreamПоддерживает внутренний буфер 8192 байт .

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

Следовательно, количество обращений к диску сокращается. Вот почему запись байтов выполняется быстрее BufferedOutputStream.

Создайте BufferedOutputStream

Чтобы создать файл BufferedOutputStream, мы должны java.io.BufferedOutputStreamсначала импортировать пакет. Как только мы импортируем пакет, мы можем создать выходной поток.

 // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String path); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferOutputStream(file); 

В приведенном выше примере мы создали BufferdOutputStreamименованный буфер с указанным FileOutputStreamфайлом.

Здесь внутренний буфер имеет размер по умолчанию 8192 байта. Однако мы также можем указать размер внутреннего буфера.

 // Creates a BufferedOutputStream with specified size internal buffer BufferedOutputStream buffer = new BufferOutputStream(file, int size); 

Буфер поможет быстрее записывать байты в файлы.

Методы BufferedOutputStream

BufferedOutputStreamКласс предоставляет реализации для различных методов в OutputStreamклассе.

write () Метод

  • write() - записывает один байт во внутренний буфер выходного потока
  • write(byte() array) - записывает байты из указанного массива в выходной поток
  • write(byte() arr, int start, int length) - записывает количество байтов, равное длине, в выходной поток из массива, начиная с позиции start

Пример: BufferedOutputStream для записи данных в файл

 import java.io.FileOutputStream; import java.io.BufferedOutputStream; public class Main ( public static void main(String() args) ( String data = "This is a line of text inside the file"; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); // Creates a BufferedOutputStream BufferedOutputStream output = new BufferedOutputStream(file); byte() array = data.getBytes(); // Writes data to the output stream output.write(array); output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

В приведенном выше примере мы создали буферизованный выходной поток с именем output вместе с FileOutputStream. Выходной поток связан с файлом output.txt .

 FileOutputStream file = new FileOutputStream("output.txt"); BufferedOutputStream output = new BufferedOutputStream(file); 

Для записи данных в файл мы использовали write()метод.

Здесь, когда мы запускаем программу, файл output.txt заполняется следующим содержимым.

 This is a line of text inside the file. 

Примечание . getBytes()Метод, используемый в программе, преобразует строку в массив байтов.

flush () Метод

Чтобы очистить внутренний буфер, мы можем использовать flush()метод. Этот метод заставляет выходной поток записывать все данные, имеющиеся в буфере, в целевой файл. Например,

 import java.io.FileOutputStream; import java.io.BufferedOutputStream; public class Main ( public static void main(String() args) ( String data = "This is a demo of the flush method"; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(" flush.txt"); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferedOutputStream(file); // Writes data to the output stream buffer.write(data.getBytes()); // Flushes data to the destination buffer.flush(); System.out.println("Data is flushed to the file."); buffer.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Вывод

 Данные сбрасываются в файл. 

Когда мы запускаем программу, файл flush.txt заполняется текстом, представленным строковыми данными.

close () Метод

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

Чтобы узнать больше, посетите Java BufferedOutputStream (официальная документация Java).

Интересные статьи...