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) - записує кількість байт, рівну довжині, у вихідний потік з масиву, починаючи з початку позиції

Приклад: 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).

Цікаві статті...