Java BufferedWriter (s příklady)

V tomto výukovém programu se na příkladech seznámíme s Java BufferedWriter a jeho metodami.

BufferedWriterTřída java.ioobalu 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

BufferedWriterUdrž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.BufferedWriternejprve 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 BufferedWriterpojmenovanou vyrovnávací paměť s FileWriterpojmenovaným souborem.

Zde má vnitřní vyrovnávací paměť BufferedWritervý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

BufferedWriterTří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če
  • write(char() array) - zapíše znaky ze zadaného pole do zapisovače
  • write(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).

Zajímavé články...