Класс BufferedOutputStream в Java
Класс BufferedOutputStream
В этом руководстве мы узнаем о Java BufferedOutputStream и его методах с помощью примеров.
BufferedOutputStream
класс java.io
package используется с другими потоками вывода для более эффективной записи данных (в байтах).
Он расширяет 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
class предоставляет реализации для различных методов в OutputStream
класс.
Метод записи()
write()
- записывает один байт во внутренний буфер выходного потокаwrite(byte[] array)
- записывает байты из указанного массива в выходной потокwrite(byte[] arr, int start, int length)
- записывает количество байт, равное 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()
метод. Этот метод заставляет поток вывода записывать все данные, имеющиеся в буфере, в файл назначения. Например,
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();
}
}
}
Вывод
Data is flushed to the file.
Когда мы запускаем программу, файл flush.txt заполняется текстом, представленным строкой data .
<час>Метод close()
Чтобы закрыть буферизованный поток вывода, мы можем использовать close()
метод. После вызова метода мы не можем использовать выходной поток для записи данных.
Чтобы узнать больше, посетите страницу Java BufferedOutputStream (официальная документация по Java).
java