JavaRush /Blog Java /Random-PL /BufferedReader i BufferedWriter

BufferedReader i BufferedWriter

Opublikowano w grupie Random-PL
Klasa Java BufferedReader odczytuje tekst ze strumienia wejściowego znaków, buforując odczytane znaki, aby umożliwić wydajne odczytywanie znaków, tablic i ciągów. Rozmiar bufora można określić jako drugi parametr w konstruktorze.
BufferedReader i BufferedWriter — 1
Projektanci:
BufferedReader(Reader in) // Tworzy strumień bufora wprowadzania znaków, który używa domyślnego rozmiaru bufora.
BufferedReader(Reader in, int sz) // Tworzy strumień bufora wprowadzania znaków, który używa określonego rozmiaru.
Metody:
close() // zamknij strumień
mark(int readAheadLimit) // zaznacz pozycję w strumieniu
markSupported() // czy obsługuje tagowanie wątków
int read() // odczyt bufora
int read(char[] cbuf, int off, int len) // odczyt bufora
String readLine() // następna linia
boolean ready() // czy wątek może czytać
reset() // zresetuj strumień
skip(long n) // pomiń znaki
Przykład wykorzystania klas BufferedReader i BufferedWriter: Odczyt pliku:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class FileReaderExample {

	public static void main(String[] args) {
		String inputFileName = "file.txt";

		try (BufferedReader reader = new BufferedReader(new FileReader(inputFileName))) {
			String line;
			while ((line = reader.readLine()) != null) {
				System.out.println(line + "\n");
			}
		}
                catch (IOException e) {
			e.printStackTrace();
		}
	}

}
Klasa Java BufferedWriter zapisuje tekst do strumienia wyjściowego znaków, buforując zapisane znaki, aby umożliwić wydajne zapisywanie znaków, tablic i ciągów. Rozmiar bufora można określić jako drugi parametr w konstruktorze. Projektanci:
BufferedWriter(Writer out) // Tworzy znakowy strumień bufora wyjściowego, który używa domyślnego rozmiaru bufora.
BufferedWriter(Writer out, int sz) // Tworzy znakowy strumień bufora wyjściowego o określonym rozmiarze.
Metody:
close() // zamknij strumień
flush() // przekaż dane z bufora do Writera
newLine() // zawiń do nowej linii
write(char[] cbuf, int off, int len) // zapis do bufora
write(int c) // zapis do bufora
write(String s, int off, int len) // zapis do bufora
Przykład wykorzystania klas Java BufferedReader i BufferedWriter: Zapis do pliku
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class FileWritterExample {

	public static void main(String[] args) {
		String outputFileName = "file.txt";
		String[] array = { "one", "two", "three", "four" };

		try (BufferedWriter writter = new BufferedWriter(new FileWriter(outputFileName))) {
			for (String value : array) {
				writter.write(value + "\n");
			}
		}
        catch (IOException e) {
			e.printStackTrace();
		}
	}

}
FileWriternatychmiast zapisuje dane na dysk i za każdym razem uzyskuje do nich dostęp, bufor działa jak opakowanie i przyspiesza działanie aplikacji. Bufor zapisze dane do siebie, a następnie duży fragment plików na dysk. Odczytujemy dane z konsoli i zapisujemy je do pliku:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

public class ConsoleReaderExample {

	public static void main(String[] args) {
		String outputFileName = "file.txt";

		try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
			try (BufferedWriter writter = new BufferedWriter(new FileWriter(outputFileName))) {
				String line;
				while (!(line = reader.readLine()).equals("exit")) { // Przerwij pętlę podczas zapisywania wyjścia linii
					writter.write(line);
				}
			}
		}
         catch (IOException e) {
			e.printStackTrace();
		}
	}

}
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION