V tomto výučbe sa pomocou príkladov dozvieme o prostredí Java BufferedOutputStream a jeho metódach.
BufferedOutputStream
Trieda java.io
balenia je používaný s inými výstupnými prúdmi pre zápis dát (v bytoch) efektívnejšie.
Rozširuje OutputStream
abstraktnú triedu.
Práca BufferedOutputStream
BufferedOutputStream
Udržuje vnútornej vyrovnávacej pamäte 8192 bajtov .
Počas operácie zápisu sa bajty zapisujú do internej medzipamäte namiesto na disk. Akonáhle je vyrovnávacia pamäť naplnená alebo je prúd uzavretý, celá vyrovnávacia pamäť sa zapíše na disk.
Preto sa zníži počet komunikácií na disk. To je dôvod, prečo je zápis bajtov rýchlejší BufferedOutputStream
.
Vytvorte BufferedOutputStream
Aby sme vytvorili BufferedOutputStream
, musíme najskôr importovať java.io.BufferedOutputStream
balík. Po importovaní balíka tu môžeme vytvoriť výstupný prúd.
// Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String path); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferOutputStream(file);
Vo vyššie uvedenom príklade sme vytvorili BufferdOutputStream
pomenovanú vyrovnávaciu pamäť s FileOutputStream
pomenovaným súborom.
Tu má interná vyrovnávacia pamäť predvolenú veľkosť 8192 bajtov. Môžeme však určiť aj veľkosť internej medzipamäte.
// Creates a BufferedOutputStream with specified size internal buffer BufferedOutputStream buffer = new BufferOutputStream(file, int size);
Vyrovnávacia pamäť pomôže rýchlejšie zapisovať bajty do súborov.
Metódy BufferedOutputStream
BufferedOutputStream
Trieda poskytuje implementácie pre rôzne metódy v OutputStream
triede.
metóda write ()
write()
- zapíše jeden bajt do vnútornej medzipamäte výstupného tokuwrite(byte() array)
- zapisuje bajty zo zadaného poľa do výstupného tokuwrite(byte() arr, int start, int length)
- zapíše počet bajtov rovných dĺžke do výstupného toku z poľa počnúc od začiatku polohy
Príklad: BufferedOutputStream na zapisovanie údajov do súboru
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(); ) ) )
Vo vyššie uvedenom príklade sme vytvorili medzipamäť výstupného toku s názvom output spolu s FileOutputStream
. Výstupný prúd je prepojený so súborom output.txt .
FileOutputStream file = new FileOutputStream("output.txt"); BufferedOutputStream output = new BufferedOutputStream(file);
Na zápis údajov do súboru sme použili write()
metódu.
Tu, keď spustíme program, je súbor output.txt naplnený nasledujúcim obsahom.
This is a line of text inside the file.
Poznámka : getBytes()
Metóda použitá v programe prevádza reťazec na pole bajtov.
flush () metóda
Na vyčistenie interného bufferu môžeme použiť flush()
metódu. Táto metóda núti výstupný prúd zapisovať všetky údaje prítomné vo vyrovnávacej pamäti do cieľového súboru. Napríklad,
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ýkon
Údaje sa do súboru prenesú.
Keď spustíme program, súbor flush.txt sa vyplní textom predstavovaným údajmi reťazca.
metóda close ()
Na zatvorenie medzipamäťového výstupného toku môžeme použiť close()
metódu. Po zavolaní metódy nemôžeme použiť výstupný prúd na zápis údajov.
Ak sa chcete dozvedieť viac, navštívte Java BufferedOutputStream (oficiálna dokumentácia Java).