V tomto výučbe sa pomocou príkladov dozvieme o prostredí Java BufferedWriter a jeho metódach.
BufferedWriter
Trieda java.io
obalu môže byť použitý s inými autormi na zápis dát (písmenami) efektívnejšie.
Rozširuje abstraktnú triedu Writer
.
Fungovanie BufferedWriter
BufferedWriter
Udržuje vnútornej vyrovnávacej pamäte 8192 znakov .
Počas operácie zápisu sa znaky zapisujú do internej medzipamäte namiesto na disk. Po naplnení vyrovnávacej pamäte alebo zatvorení zapisovacieho modulu sa na disk zapíšu všetky znaky vo vyrovnávacej pamäti.
Preto sa zníži počet komunikácií na disk. Preto je písanie znakov rýchlejšie BufferedWriter
.
Vytvorte BufferedWriter
Aby sme vytvorili BufferedWriter
, musíme najskôr importovať java.io.BufferedWriter
balík. Po importovaní balíka tu môžeme vytvoriť zapisovateľný modul do vyrovnávacej pamäte.
// Creates a FileWriter FileWriter file = new FileWriter(String name); // Creates a BufferedWriter BufferedWriter buffer = new BufferedWriter(file);
Vo vyššie uvedenom príklade sme vytvorili BufferedWriter
pomenovanú vyrovnávaciu pamäť s FileWriter
pomenovaným súborom.
Tu má interná vyrovnávacia pamäť BufferedWriter
predvolenú veľkosť 8192 znakov. Môžeme však určiť aj veľkosť internej medzipamäte.
// Creates a BufferedWriter with specified size internal buffer BufferedWriter buffer = new BufferedWriter(file, int size);
Vyrovnávacia pamäť pomôže efektívnejšie zapisovať znaky do súborov.
Metódy BufferedWriter
BufferedWriter
Trieda poskytuje implementácie pre rôzne metódy prítomných v Writer
.
metóda write ()
write()
- zapíše jeden znak do vnútornej medzipamäte zapisovačawrite(char() array)
- zapíše znaky zo zadaného poľa do zapisovačawrite(String data)
- zapíše zadaný reťazec do zapisovača
Príklad: BufferedWriter na zápis údajov do súboru
import java.io.FileWriter; import java.io.BufferedWriter; public class Main ( public static void main(String args()) ( String data = "This is the data in the output file"; try ( // Creates a FileWriter FileWriter file = new FileWriter("output.txt"); // Creates a BufferedWriter BufferedWriter output = new BufferedWriter(file); // Writes the string to the file output.write(data); // Closes the writer output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Vo vyššie uvedenom príklade sme spolu s FileWriter
. Zapisovateľ do vyrovnávacej pamäte je prepojený so súborom output.txt .
FileWriter file = new FileWriter("output.txt"); BufferedWriter output = new BufferedWriter(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.
flush () metóda
Na vyčistenie interného bufferu môžeme použiť flush()
metódu. Táto metóda núti zapisovateľa zapísať všetky údaje prítomné vo vyrovnávacej pamäti do cieľového súboru.
Predpokladajme napríklad, že máme prázdny súbor s názvom output.txt .
import java.io.FileWriter; import java.io.BufferedWriter; public class Main ( public static void main(String() args) ( String data = "This is a demo of the flush method"; try ( // Creates a FileWriter FileWriter file = new FileWriter(" flush.txt"); // Creates a BufferedWriter BufferedWriter output = new BufferedWriter(file); // Writes data to the file output.write(data); // Flushes data to the destination output.flush(); System.out.println("Data is flushed to the file."); output.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Výkon
Údaje sa do súboru prenesú.
Keď spustíme program, súbor output.txt sa vyplní textom predstavovaným údajmi reťazca.
metóda close ()
Na zatvorenie zapisovača s medzipamäťou môžeme použiť túto close()
metódu. Po close()
zavolaní metódy nemôžeme použiť zapisovač na zápis údajov.
Ďalšie metódy BufferedWriter
Metóda | Popis |
---|---|
newLine() | vloží nový riadok do zapisovateľa |
append() | vloží zadaný znak do aktuálneho zapisovača |
Ak sa chcete dozvedieť viac, navštívte Java BufferedWriter (oficiálna dokumentácia Java).