//The CopyLines example invokes BufferedReader.readLine and PrintWriter.println to do input and output one line at a time.
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.IOException;
public class CopyLines {
public static void main(String[] args) throws IOException {
BufferedReader inputStream = null;
PrintWriter outputStream = null;
try {
inputStream = new BufferedReader(new FileReader("xanadu.txt"));
outputStream = new PrintWriter(new FileWriter("characteroutput.txt"));
String l;
while ((l = inputStream.readLine()) != null) {
outputStream.println(l);
}
} finally {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
}
}
}
Теперь, какой смысл оборачивать класс FileReader (или InputStreamReader) в BufferedReader, если они уже реализуют внутренний механизм буферизации? Их внутренний буфер также имеет такой же размер (8192 байта). Приведенный пример больше не актуален в JDK 21?
На сайте Java Tutorials показан этот пример при обсуждении потоков символов: [code]//The CopyLines example invokes BufferedReader.readLine and PrintWriter.println to do input and output one line at a time.
try { inputStream = new BufferedReader(new FileReader("xanadu.txt")); outputStream = new PrintWriter(new FileWriter("characteroutput.txt"));
String l; while ((l = inputStream.readLine()) != null) { outputStream.println(l); } } finally { if (inputStream != null) { inputStream.close(); } if (outputStream != null) { outputStream.close(); } } } } [/code] Теперь, какой смысл оборачивать класс FileReader (или InputStreamReader) в BufferedReader, если они уже реализуют внутренний механизм буферизации? Их внутренний буфер также имеет такой же размер (8192 байта). Приведенный пример больше не актуален в JDK 21?