Чтение файла с заданного номера строки в Java

Научитесь читать определенную строку из текстового файла на Java. Мы научимся писать решение как для маленьких, так и для больших файлов.

1. Чтение строки в небольшом файле

Если файл небольшой, мы можем позволить себе прочитать весь файл в память, используя метод, который возвращает содержимое файла в виде списка строк.

Получив список строк, мы можем прочитать любую строку, используя подходящий индекс в методе list.get().

Path filePath = Paths.get("C:/temp/file.txt");List<String> lines = null;try {lines = Collections.unmodifiableList(Files.readAllLines(filePath));} catch(IOException e) {e.printStackTrace();}//Read second lineString secondLine = lines.get(1);

Помните, что индексы списков и массивов начинаются с нуля.

3. Чтение определенной строки в большом файле

Используя метод lines(), содержимое большого файла считывается и обрабатывается лениво в форме Stream. Поскольку потоки обрабатываются лениво, мы можем использовать метод skip(), чтобы оставить определенные номера строк, а затем начать чтение с нужного места.

Path filePath = Paths.get("C:/temp/file.txt")//try-with-resourcestry(Stream<String> streamOfLines = Files.lines( filePath )){String secondLine = streamOfLines.skip(1).findFirst().get();}catch(IOException e){e.printStackTrace();}

3. Заключение

В этом коротком уроке мы научились читать определенный номер строки в Java. Мы увидели два решения, где Files.lines() можно использовать для маленьких и больших файлов.

Первое решение, Files.readAllLines(), подходит только для небольших файлов.

Исходный код на Github

Прокрутить вверх