У цьому посібнику ми дізнаємося про 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).