W tym samouczku dowiemy się o języku Java BufferedWriter i jego metodach na przykładach.
BufferedWriter
Klasa java.io
pakietu może być stosowany z innymi pisarzami, aby bardziej efektywnie zapisywać dane (w znakach).
Rozszerza klasę abstrakcyjną Writer
.
Działanie BufferedWriter
BufferedWriter
Utrzymuje wewnętrzny bufor 8192 znaków .
Podczas operacji zapisu znaki są zapisywane w wewnętrznym buforze zamiast na dysku. Po zapełnieniu bufora lub zamknięciu programu zapisującego całe znaki w buforze są zapisywane na dysku.
W związku z tym zmniejsza się liczba komunikacji z dyskiem. Dlatego pisanie znaków jest szybsze przy użyciu BufferedWriter
.
Utwórz BufferedWriter
Aby utworzyć plik BufferedWriter
, musimy najpierw zaimportować java.io.BufferedWriter
pakiet. Po zaimportowaniu pakietu tutaj, możemy utworzyć buforowany moduł zapisujący.
// Creates a FileWriter FileWriter file = new FileWriter(String name); // Creates a BufferedWriter BufferedWriter buffer = new BufferedWriter(file);
W powyższym przykładzie utworzyliśmy BufferedWriter
nazwany bufor z FileWriter
nazwanym plikiem.
W tym przypadku bufor wewnętrzny BufferedWriter
ma domyślny rozmiar 8192 znaków. Możemy jednak określić również rozmiar bufora wewnętrznego.
// Creates a BufferedWriter with specified size internal buffer BufferedWriter buffer = new BufferedWriter(file, int size);
Bufor pomoże wydajniej zapisywać znaki w plikach.
Metody BufferedWriter
BufferedWriter
Klasa zawiera implementacje dla różnych obecnych metod Writer
.
write () Metoda
write()
- zapisuje pojedynczy znak do wewnętrznego bufora pisarzawrite(char() array)
- zapisuje znaki z określonej tablicy do modułu piszącegowrite(String data)
- zapisuje określony ciąg do programu zapisującego
Przykład: BufferedWriter do zapisywania danych do pliku
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(); ) ) )
W powyższym przykładzie utworzyliśmy buforowany moduł zapisujący o nazwie output wraz z FileWriter
. Buforowany moduł zapisujący jest powiązany z plikiem output.txt .
FileWriter file = new FileWriter("output.txt"); BufferedWriter output = new BufferedWriter(file);
Aby zapisać dane do pliku, skorzystaliśmy z write()
metody.
Tutaj, kiedy uruchamiamy program, plik output.txt jest wypełniony następującą treścią.
This is a line of text inside the file.
flush () Metoda
Aby wyczyścić bufor wewnętrzny, możemy użyć flush()
metody. Ta metoda wymusza zapisanie wszystkich danych znajdujących się w buforze przez piszącego w pliku docelowym.
Na przykład załóżmy, że mamy pusty plik o nazwie 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(); ) ) )
Wynik
Dane są przesyłane do pliku.
Kiedy uruchamiamy program, plik output.txt jest wypełniany tekstem reprezentowanym przez dane tekstowe.
close () Metoda
Aby zamknąć buforowany moduł zapisujący, możemy użyć close()
metody. Po close()
wywołaniu metody nie możemy użyć programu zapisującego do zapisania danych.
Inne metody BufferedWriter
metoda | Opis |
---|---|
newLine() | wstawia nowy wiersz do pisarza |
append() | wstawia określony znak do bieżącego modułu zapisującego |
Aby dowiedzieć się więcej, odwiedź stronę Java BufferedWriter (oficjalna dokumentacja Java).