CodeGym /Java-Blog /Germany /Die Klassen BufferedReader und BufferedWriter
Autor
John Selawsky
Senior Java Developer and Tutor at LearningTree

Die Klassen BufferedReader und BufferedWriter

Veröffentlicht in der Gruppe Germany
Die Java-Klasse BufferedReader liest Text aus einem Strom von Symbolen und puffert die Symbole, um Zeichen, Arrays und Strings effizient einzulesen. Du kannst die Puffergröße als zweites Argument an den Konstruktor übergeben. Die Klassen BufferedReader und BufferedWriter - 2Konstruktoren:

BufferedReader(Reader in) // Creates a buffered stream for reading symbols. It uses the default buffer size.
BufferedReader(Reader in, int sz) // Creates a buffered stream for reading symbols. It uses the specified buffer size.
Methoden:

close() // Close the stream
mark(int readAheadLimit) // Mark the position in the stream
markSupported() // Indicates whether stream marking is supported
int	read() // Read the buffer
int	read(char[] cbuf, int off, int len) // Read the buffer
String	readLine() // Next line
boolean	ready() // Is the stream ready to read?
reset() // Reset the stream
skip(long n) // Skip characters

Hier ist ein Beispiel für die Verwendung die Java-Klasse BufferedReader und die Java-Klasse BufferedWriter in Java:

Eine Datei einlesen:

import java.io.*;

public class ReadFile {
	public static void main(String[] args) {
		try {
			File file = new File("file.txt"); 
			FileReader fileReader = new FileReader(file); // A stream that connects to the text file
			BufferedReader bufferedReader = new BufferedReader(fileReader); // Connect the FileReader to the BufferedReader
			
			String line;
			while((line = bufferedReader.readLine()) != null) {
				System.out.println(line); // Display the file's contents on the screen, one line at a time
			}
			
			bufferedReader.close(); // Close the stream
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
Javas BufferedWriter-Klasse schreibt Text in einen Ausgabezeichenstrom und puffert die Zeichen, um Zeichen, Arrays und Zeichenketten effizient auszugeben. Du kannst die Puffergröße als zweites Argument an den Konstruktor übergeben. Konstruktoren:

BufferedWriter(Writer out) // Create a buffered output character stream that uses the default buffer size.
BufferedWriter(Writer out, int sz) // Creates a buffered character output stream that uses a buffer with the specified size.
Methoden:

close() // Close the stream
flush() // Send the data from the buffer to the Writer
newLine() // Move to a new line
write(char[] cbuf, int off, int len) // Write to the buffer
write(int c) // Write to the buffer
write(String s, int off, int len) // Write to the buffer

Hier ist ein Beispiel für die Verwendung der Java-Klassen BufferedReader und BufferedWriter:

Eine Datei mit Java schreiben:

import java.io.*;

public class WriteFile {
    public static void main(String[] args) {
        String[] list = {"one", "two", "three", "fo"};
        try {
            File file = new File("file.txt");
            FileWriter fileReader = new FileWriter(file); // A stream that connects to the text file
            BufferedWriter bufferedWriter = new BufferedWriter(fileReader); // Connect the FileWriter to the BufferedWriter

            for (String s : list) {
                bufferedWriter.write(s + "\n");
            }

            bufferedWriter.close (); // Close the stream
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Die Java-Klasse FileWriter schreibt Daten direkt auf die Festplatte. Jedes Mal, wenn wir auf sie zugreifen, beschleunigt der sie umgebende Puffer unsere Anwendung. Der Puffer schreibt die Daten intern und schreibt dann später große Dateiblöcke auf die Festplatte. Wir lesen Daten von der Konsole und schreiben sie in eine Datei:

import java.io.*;

class ConsoleRead {
    public static void main(String[] args) {
        try {
            File file = new File("file.txt");
            InputStreamReader inputStreamReader = new InputStreamReader(System.in); // A stream for reading from the console
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader); // Connect InputStreamReader to a BufferedReader

            FileWriter fileReader = new FileWriter(file); // A stream that connects to the text file
            BufferedWriter bufferedWriter = new BufferedWriter(fileReader); // Connect the FileWriter to the BufferedWriter

            String line;
            while(!(line = bufferedReader.readLine()).equals("exit")) {
                bufferedWriter.write(line);
            }

            bufferedReader.close(); // Close the stream
            bufferedWriter.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Dieser Beitrag ist auf Englisch verfügbar.
Read the English version of this article to better understand Java’s BufferedReader and BufferedWriter classes. Find out why and how they use buffering to your advantage.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION