Java BufferedOutputStream (példákkal)

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ébe
  • write(byte() array) - írja a bájtokat a megadott tömbből a kimeneti adatfolyamba
  • write(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ó).

érdekes cikkek...