Java puhverdatud väljundvoog (koos näidetega)

Selles õpetuses õpime näidete abil Java BufferedOutputStreami ja selle meetodeid.

BufferedOutputStreamKlassi java.iopakett kasutatakse teiste tulostevirrat kirjutada andmeid (baitides) tõhusamalt.

See laiendab OutputStreamabstraktset klassi.

BufferedOutputStreami töötamine

BufferedOutputStreamVäidab sisemine puhver 8192 baiti .

Kirjutamise ajal kirjutatakse baidid ketta asemel sisemisse puhvrisse. Kui puhver on täidetud või voog on suletud, kirjutatakse kogu puhver kettale.

Seega väheneb kettale suhtlemise arv. Seetõttu on baitide kirjutamine kiirem BufferedOutputStream.

Looge BufferedOutputStream

A loomiseks BufferedOutputStreampeame java.io.BufferedOutputStreamesmalt pakendi importima . Kui pakett on siia imporditud, saame väljundvoo luua.

 // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String path); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferOutputStream(file); 

Ülaltoodud näites oleme loonud nimega failiga BufferdOutputStreamnimelise puhvri FileOutputStream.

Siin on sisepuhvri vaikimisi suurus 8192 baiti. Siiski võime täpsustada ka sisemise puhvri suuruse.

 // Creates a BufferedOutputStream with specified size internal buffer BufferedOutputStream buffer = new BufferOutputStream(file, int size); 

Puhver aitab failidesse faile kiiremini kirjutada.

BufferedOutputStreami meetodid

BufferedOutputStreamKlassi pakub rakendusi erinevate meetodite OutputStreamklassi.

kirjuta () meetod

  • write() - kirjutab väljundvoo sisemisse puhvrisse ühe baidi
  • write(byte() array) - kirjutab baidid määratud massiivist väljundvoogu
  • write(byte() arr, int start, int length) - kirjutab baitide arvu, mis on võrdne väljundvooluga massiivist alates positsiooni algusest

Näide: BufferedOutputStream andmete faili kirjutamiseks

 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(); ) ) ) 

Ülaltoodud näites oleme loonud puhverdatud väljundvoo nimega väljund koos FileOutputStream. Väljundvoog on seotud failiga output.txt .

 FileOutputStream file = new FileOutputStream("output.txt"); BufferedOutputStream output = new BufferedOutputStream(file); 

Andmete faili kirjutamiseks oleme kasutanud write()meetodit.

Siin on programmi käivitamisel fail output.txt täidetud järgmise sisuga.

 This is a line of text inside the file. 

Märkus . Programmis getBytes()kasutatud meetod muudab stringi baitide massiiviks.

loputage () meetod

Sisemise puhvri tühjendamiseks saame kasutada flush()meetodit. See meetod sunnib väljundvoogu kirjutama kõik puhvris olevad andmed sihtfaili. Näiteks,

 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(); ) ) ) 

Väljund

 Andmed viiakse faili. 

Programmi käivitamisel täidetakse fail flush.txt tekstiandmetega.

close () meetod

Puhverdatud väljundvoo sulgemiseks saame kasutada close()meetodit. Kui meetod on kutsutud, ei saa me andmete kirjutamiseks kasutada väljundvoogu.

Lisateabe saamiseks külastage Java BufferedOutputStream (ametlik Java dokumentatsioon).

Huvitavad Artiklid...