Java:
Чтение текстового файла
Как:
Чтение файла в Java - это проще простого, особенно с использованием java.nio.file
. Вот быстрый пример:
import java.nio.file.Files;
import java.nio.file.Path;
import java.io.IOException;
import java.util.stream.Stream;
public class FileReadExample {
public static void main(String[] args) {
Path filePath = Path.of("example.txt");
try (Stream<String> lines = Files.lines(filePath)) {
lines.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Запуск этого кода с example.txt
, содержащим “Hello, file readers!”, выведет:
Hello, file readers!
Погружаемся глубже
Java развивается. Раньше вам приходилось самостоятельно управлять потоками и читателями – множество шаблонного кода. Пакет java.io
был на пике популярности, с часто используемыми FileReader
и BufferedReader
. Затем появился java.nio
, предлагающий каналы и буферы для большего контроля.
Теперь java.nio.file
находится еще на более высоком уровне. Files
и Paths
упрощают задачу. Приведенный выше пример использует Files.lines
, которое лениво стримит строки, что отлично подходит для больших файлов. Также вы получаете try-with-resources, автоматически закрывающее потоки, чтобы избежать утечек.
Альтернативы? Scanner
удобен для анализа. Apache Commons IO и Guava от Google предлагают утилиты для более сложных задач, если они вам нужны. Тем не менее, обычная Java обычно вас далеко заведет.
С точки зрения реализации, кодировка файла имеет значение. Files.lines
по умолчанию использует UTF-8, но вы можете указать другую. С другой стороны, BufferedReader
требует, чтобы вы заранее установили Charset
, если он не является стандартным.
Смотрите также
Для дополнительной информации загляните сюда:
- Класс
Files
в официальной документации Java. - Чтение, запись и создание файлов для подробного ознакомления.
- Apache Commons IO для мощной библиотеки утилит ввода-вывода файлов.