Научитесь читать определенную строку из текстового файла на 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(), подходит только для небольших файлов.