CodeGym /Blog Java /Poland /BufferedReader i BufferedWriter w Java
Autor
John Selawsky
Senior Java Developer and Tutor at LearningTree

BufferedReader i BufferedWriter w Java

Opublikowano w grupie Poland
Klasa BufferedReader w języku Java odczytuje tekst ze strumienia symboli, buforuje symbole w celu wydajnego odczytywania znaków, tablic i ciągów. Konstruktorowi można przekazać rozmiar bufora jako drugi argument. BufferedReader i BufferedWriter - 2Konstruktory:

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.
Metody:

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

Oto przykład użycia klas Java BufferedReader i BufferedWriter:

Wczytywanie pliku:

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();
		}
	}
}
Klasa BufferedWriter języka Java zapisuje tekst w wyjściowym strumieniu znaków, buforuje je w celu wydajnego zapisu znaków, tablic i ciągów. Konstruktorowi można przekazać rozmiar bufora jako drugi argument. Konstruktory:

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.
Metody:

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

Oto przykład użycia klas języka Java BufferedReader i BufferedWriter:

Zapisywanie do pliku:

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();
        }
    }
}
FileWriter natychmiast zapisuje dane na dysku. Za każdym razem, gdy uzyskujemy do niego dostęp, opakowujący go bufor przyspiesza naszą aplikację. Bufor zapisze dane wewnętrznie, a następnie zapisze duże fragmenty plików na dysku. Odczytujemy dane z konsoli i zapisujemy je do pliku:

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();
        }
    }
}
Ten artykuł przeczytasz także po angielsku.
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.
BufferedReader i BufferedWriter w Java - 2
Komentarze (1)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Marek Pasierbek Poziom 9, Poznań, Poland
8 grudnia 2020
dobra robota / good job