Selles õpetuses õpime näidete abil Java BufferedOutputStreami ja selle meetodeid.
BufferedOutputStream
Klassi java.io
pakett kasutatakse teiste tulostevirrat kirjutada andmeid (baitides) tõhusamalt.
See laiendab OutputStream
abstraktset klassi.
BufferedOutputStreami töötamine
BufferedOutputStream
Vä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 BufferedOutputStream
peame java.io.BufferedOutputStream
esmalt 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 BufferdOutputStream
nimelise 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
BufferedOutputStream
Klassi pakub rakendusi erinevate meetodite OutputStream
klassi.
kirjuta () meetod
write()
- kirjutab väljundvoo sisemisse puhvrisse ühe baidiwrite(byte() array)
- kirjutab baidid määratud massiivist väljundvooguwrite(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).