V tomto výukovém programu se na příkladech seznámíme s Java BufferedWriter a jeho metodami.
BufferedWriter
Třída java.io
obalu může být použit s jinými autory k zápisu dat (ve znacích) efektivněji.
Rozšiřuje abstraktní třídu Writer
.
Práce s BufferedWriter
BufferedWriter
Udržuje vnitřní vyrovnávací paměti 8192 znaků .
Během operace zápisu se znaky zapisují do interní vyrovnávací paměti místo na disk. Po vyplnění vyrovnávací paměti nebo uzavření zapisovače se na disk zapíší celé znaky ve vyrovnávací paměti.
Proto je snížen počet komunikace na disk. Proto je psaní znaků rychlejší BufferedWriter
.
Vytvořte BufferedWriter
Aby bylo možné vytvořit BufferedWriter
, musíme java.io.BufferedWriter
nejprve importovat balíček. Jakmile naimportujeme balíček, je zde způsob, jak můžeme vytvořit zapisovač do vyrovnávací paměti.
// Creates a FileWriter FileWriter file = new FileWriter(String name); // Creates a BufferedWriter BufferedWriter buffer = new BufferedWriter(file);
Ve výše uvedeném příkladu jsme vytvořili BufferedWriter
pojmenovanou vyrovnávací paměť s FileWriter
pojmenovaným souborem.
Zde má vnitřní vyrovnávací paměť BufferedWriter
výchozí velikost 8192 znaků. Můžeme však také určit velikost vnitřní vyrovnávací paměti.
// Creates a BufferedWriter with specified size internal buffer BufferedWriter buffer = new BufferedWriter(file, int size);
Vyrovnávací paměť pomůže efektivněji zapisovat znaky do souborů.
Metody BufferedWriter
BufferedWriter
Třída poskytuje implementace pro různé metody přítomných v Writer
.
metoda write ()
write()
- zapíše jeden znak do vnitřní vyrovnávací paměti zapisovačewrite(char() array)
- zapíše znaky ze zadaného pole do zapisovačewrite(String data)
- zapíše zadaný řetězec do zapisovače
Příklad: BufferedWriter pro zápis dat do souboru
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(); ) ) )
Ve výše uvedeném příkladu jsme vytvořili záznam s názvem ve vyrovnávací paměti s názvem výstup spolu s FileWriter
. Zapisovač s vyrovnávací pamětí je propojen se souborem output.txt .
FileWriter file = new FileWriter("output.txt"); BufferedWriter output = new BufferedWriter(file);
K zápisu dat do souboru jsme použili write()
metodu.
Tady, když spustíme program, je soubor output.txt naplněn následujícím obsahem.
This is a line of text inside the file.
flush () metoda
K vymazání vnitřní vyrovnávací paměti můžeme použít flush()
metodu. Tato metoda vynutí zapisovatel zapsat všechna data přítomná ve vyrovnávací paměti do cílového souboru.
Předpokládejme například, že máme prázdný soubor s názvem 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ýstup
Data se do souboru vyprázdní.
Když spustíme program, soubor output.txt je vyplněn textem představovaným daty řetězce.
metoda close ()
K zavření zapisovače s vyrovnávací pamětí můžeme použít close()
metodu. Jakmile je close()
metoda volána, nemůžeme použít zapisovač k zápisu dat.
Další metody BufferedWriter
Metoda | Popis |
---|---|
newLine() | vloží nový řádek do zapisovače |
append() | vloží zadaný znak do aktuálního zapisovače |
Další informace najdete v Java BufferedWriter (oficiální dokumentace Java).