Ebben az oktatóanyagban példák segítségével megismerhetjük a Java BufferedOutputStream-et és annak módszereit.
A csomag BufferedOutputStreamosztályát java.iomás kimeneti adatfolyamokkal együtt használják az adatok hatékonyabb (bájtokban) írására.
Kiterjeszti az OutputStreamabsztrakt osztályt.

A BufferedOutputStream működése
A BufferedOutputStreamfenntartja belső puffer 8192 byte .
Az írási művelet során a bájtokat a belső pufferbe írják a lemez helyett. Miután a puffer megtelt, vagy az adatfolyam bezárult, az egész puffer beíródik a lemezre.
Ezért csökken a lemezre irányuló kommunikáció száma. Ezért a bájtok írása gyorsabb BufferedOutputStream.
Hozzon létre egy BufferedOutputStream-et
A létrehozásához először BufferedOutputStreamimportálnunk kell a java.io.BufferedOutputStreamcsomagot. A csomag importálása után itt hozhatjuk létre a kimeneti adatfolyamot.
 // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String path); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferOutputStream(file); 
A fenti példában létrehoztunk egy BufferdOutputStreammegnevezett puffert a FileOutputStreammegnevezett fájllal.
Itt a belső puffer alapértelmezett mérete 8192 bájt. Megadhatjuk azonban a belső puffer méretét is.
 // Creates a BufferedOutputStream with specified size internal buffer BufferedOutputStream buffer = new BufferOutputStream(file, int size); 
A puffer segít gyorsabban írni a bájtokat a fájlokba.
A BufferedOutputStream módszerei
Az BufferedOutputStreamosztály az OutputStreamosztály különböző módszereinek megvalósítását biztosítja .
write () módszer
write()- egyetlen bájtot ír a kimeneti adatfolyam belső pufferjébewrite(byte() array)- írja a bájtokat a megadott tömbből a kimeneti adatfolyambawrite(byte() arr, int start, int length)- megírja a hosszúsággal megegyező bájtok számát a tömb tömbjéből a kezdő pozíciótól kezdve
Példa: BufferedOutputStream adatok fájlba írásához
 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(); ) ) ) 
A fenti példában létrehoztunk egy pufferelt kimeneti adatfolyamot, amelynek neve output FileOutputStream. A kimeneti adatfolyam az output.txt fájllal van összekapcsolva .
 FileOutputStream file = new FileOutputStream("output.txt"); BufferedOutputStream output = new BufferedOutputStream(file); 
Adatok írására a fájlba a write()módszert használtuk .
Itt, amikor futtatjuk a programot, az output.txt fájl a következő tartalommal töltődik fel.
 This is a line of text inside the file. 
Megjegyzés : A getBytes()programban használt módszer egy karakterláncot bájtgá alakít át.
flush () módszer
A belső puffer törléséhez használhatjuk a flush()módszert. Ez a módszer arra kényszeríti a kimeneti adatfolyamot, hogy a pufferben lévő összes adatot a célfájlba írja. Például,
 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(); ) ) ) 
Kimenet
Az adatok a fájlba kerülnek.
A program futtatásakor a flush.txt fájl kitöltődik a karakterlánc adatok által képviselt szöveggel.
bezár () módszer
A pufferelt kimeneti adatfolyam bezárásához használhatjuk a close()módszert. Miután meghívta a módszert, nem használhatjuk a kimeneti adatfolyamot az adatok megírásához.
További információkért látogasson el a Java BufferedOutputStream oldalra (hivatalos Java dokumentáció).








