Java java.nio.file.Files readAllLines()Метод
readAllLines()Метод используется для чтения всего содержимого файла по строкам и возвращает его в видеList<String>List.
readAllLines()Метод имеет две перегруженные версии:
public static List<String> readAllLines(Path path) throws IOException public static List<String> readAllLines(Path path, Charset cs) throws IOException
Первая версия читает файл с использованием кодировки по умолчанию (UTF-8), а вторая версия позволяет указать кодировку.
Описание параметра
Path path
- Тип:
java.nio.file.Path - Описание: объект пути к файлу для чтения
- Пример:
Path filePath = Paths.get("example.txt");
Charset cs(Необязательный параметр)
- Тип:
java.nio.charset.Charset - Описание: кодировка, используемая для декодирования файла
- Распространённые кодировки:
StandardCharsets.UTF_8StandardCharsets.ISO_8859_1StandardCharsets.US_ASCII
- Пример:
Charset charset = StandardCharsets.UTF_8;
Возвращаемое значение
- Тип:
List<String> - Описание: Содержит все строки файла, каждый элемент представляет строку в файле
- Примечание:
- Разделитель строк (например,
\nили\r\n) не включается в возвращаемую строку - Если файл пуст, возвращается пустой список
- Порядок строк соответствует порядку строк в файле
- Разделитель строк (например,
Обработка исключений
readAllLines()Метод может выбрасывать следующие исключения:
IOException- Если возникает ошибка ввода-вывода (например, файл не существует)SecurityException- Если недостаточно прав для доступа к файлу
Рекомендуется обрабатывать исключения при его использовании:
Пример
try {
List<String> lines = Files.readAllLines(path);
// обработать прочитанное содержимое
} catch (IOException e) {
e.printStackTrace();
// обработать исключения
}
List<String> lines = Files.readAllLines(path);
// обработать прочитанное содержимое
} catch (IOException e) {
e.printStackTrace();
// обработать исключения
}
Примеры использования
Пример 1: Базовое использование
Пример
import java.nio.file.*;
import java.util.List;
public class ReadFileExample {
public static void main(String[] args) {
Path filePath = Paths.get("example.txt");
try {
List<String> lines = Files.readAllLines(filePath);
// вывести содержимое файла
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
System.err.println("Ошибка чтения файла: " + e.getMessage());
}
}
}
import java.util.List;
public class ReadFileExample {
public static void main(String[] args) {
Path filePath = Paths.get("example.txt");
try {
List<String> lines = Files.readAllLines(filePath);
// вывести содержимое файла
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
System.err.println("Ошибка чтения файла: " + e.getMessage());
}
}
}
Пример 2: Указание кодировки символов
Пример
import java.nio.file.*;
import java.nio.charset.StandardCharsets;
import java.util.List;
public class ReadFileWithCharset {
public static void main(String[] args) {
Path filePath = Paths.get("example.txt");
try {
List<String> lines = Files.readAllLines(filePath, StandardCharsets.UTF_8);
// обработать содержимое файла
lines.forEach(System.out::println);
} catch (IOException e) {
System.err.println("Ошибка чтения файла: " + e.getMessage());
}
}
}
import java.nio.charset.StandardCharsets;
import java.util.List;
public class ReadFileWithCharset {
public static void main(String[] args) {
Path filePath = Paths.get("example.txt");
try {
List<String> lines = Files.readAllLines(filePath, StandardCharsets.UTF_8);
// обработать содержимое файла
lines.forEach(System.out::println);
} catch (IOException e) {
System.err.println("Ошибка чтения файла: " + e.getMessage());
}
}
}
Примечания
- Размер файла: этот метод считывает весь файл в память сразу, что не подходит для обработки очень больших файлов (например, файлов размером более нескольких сотен МБ)
- Кодировка символов: убедитесь, что используется правильная кодировка, иначе может появиться искажённый текст
- : В разных операционных системах используются разные окончания строк (Windows использует, Unix/Linux использует
\r\n), но\nправильно обработает эти различияreadAllLines()Вопросы производительности - : для больших файлов рассмотрите использованиеметода для потоковой обработки
BufferedReaderиlines()Альтернативы
Альтернативы
Пример
Пример
try (Stream<String> stream = Files.lines(path)) {
stream.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
stream.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
Итог
Итог
Files.readAllLines()Другие расширения
Java java.nio.file.Files