BufferedReader
Читает текст построчно с буферизацией — классический способ обработки больших файлов.
Доступно с: Java 1.1
Синтаксис
public class BufferedReader extends ReaderПримеры
Чтение файла построчно через readLine():
void main() throws IOException {
Path file = Path.of("todo.txt");
Files.writeString(file, "wash dishes\nwrite report\n");
try (BufferedReader reader = Files.newBufferedReader(file)) {
String line;
while ((line = reader.readLine()) != null) {
IO.println("- " + line);
}
}
Files.delete(file);
}Результат:
- wash dishes
- write reportЗапись через BufferedWriter:
void main() throws IOException {
Path file = Path.of("out.txt");
try (BufferedWriter writer = Files.newBufferedWriter(file)) {
writer.write("line 1");
writer.newLine();
writer.write("line 2");
}
IO.println(Files.readAllLines(file));
Files.delete(file);
}Результат:
[line 1, line 2]Примечания
readLine() возвращает null, когда файл закончился. Создавайте читатель через Files.newBufferedReader(path) — он использует UTF-8. Конструкция new BufferedReader(new FileReader(...)) из старых учебников до Java 18 брала кодировку системы. Для простых задач короче Files.readAllLines() или Files.lines().
См. также
- Files.lines() — Читает файл лениво — как поток строк, не загружая его в память целиком.
- Scanner — Читает ввод по частям: строки целиком (nextLine) или отдельные слова и числа.
- Files.readAllLines() — Читает текстовый файл в список строк.
- try / catch / finally — Перехватывает исключения; finally выполняется всегда, а try с ресурсами сам их закрывает.
Вопросы и ответы по теме
В учебнике
- Чтение и запись файлов — Чтение и запись текстовых файлов в Java — Files.writeString, readString, readAllLines, write, дозапись в конец, Files.lines и буферизованные потоки.