Java java.nio.file.Files readAllLines()Метод

Java File Java java.nio.file.Files

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_8
    • StandardCharsets.ISO_8859_1
    • StandardCharsets.US_ASCII
  • Пример:
    Charset charset = StandardCharsets.UTF_8;

Возвращаемое значение

  • Тип:List<String>
  • Описание: Содержит все строки файла, каждый элемент представляет строку в файле
  • Примечание:
    • Разделитель строк (например,\nили\r\n) не включается в возвращаемую строку
    • Если файл пуст, возвращается пустой список
    • Порядок строк соответствует порядку строк в файле

Обработка исключений

readAllLines()Метод может выбрасывать следующие исключения:

  1. IOException- Если возникает ошибка ввода-вывода (например, файл не существует)
  2. SecurityException- Если недостаточно прав для доступа к файлу

Рекомендуется обрабатывать исключения при его использовании:

Пример

try {
    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());
        }
    }
}

Пример 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());
        }
    }
}

Примечания

  1. Размер файла: этот метод считывает весь файл в память сразу, что не подходит для обработки очень больших файлов (например, файлов размером более нескольких сотен МБ)
  2. Кодировка символов: убедитесь, что используется правильная кодировка, иначе может появиться искажённый текст
  3. : В разных операционных системах используются разные окончания строк (Windows использует, Unix/Linux использует\r\n), но\nправильно обработает эти различияreadAllLines()Вопросы производительности
  4. : для больших файлов рассмотрите использованиеметода для потоковой обработкиBufferedReaderиlines()Альтернативы

Альтернативы

Пример

Пример

try (Stream<String> stream = Files.lines(path)) {
    stream.forEach(System.out::println);
} catch (IOException e) {
    e.printStackTrace();
}

Итог


Итог

Files.readAllLines()Другие расширения

Java File Java java.nio.file.Files

ИИ думает...