Как считать определенную строку с помощью определенного номера строки из файла в Java?

В Java, там какой-либо метод для чтения конкретной строки из файла? Например, считайте строку 32 или любой другой номер строки.

86
задан Ripon Al Wasim 14 October 2015 в 07:06
поделиться

5 ответов

Если у вас нет предыдущего Зная о строках в файле, невозможно получить прямой доступ к 32-й строке, не прочитав 31 предыдущую строку.

Это верно для всех языков и всех современных файловых систем.

Таким образом, вы просто читаете строки, пока не найдете 32-ую строку.

69
ответ дан 24 November 2019 в 07:57
поделиться

Я думаю, что вы ищете echoerr .

-121--1263334-

Нет, если только в этом формате файла длины строк не определены заранее (например, все строки с фиксированной длиной), для их подсчета необходимо выполнить итерацию «строка за строкой».

4
ответ дан 24 November 2019 в 07:57
поделиться

Иоахим прав на , конечно, и альтернативная реализация для Криса (для небольших файлов только потому, что он загружает весь файл) может заключаться в использовании commons-io из Apache (хотя, возможно, вы можете не захотеть вводить новую зависимость только для этого, если вы считаю, что это полезно и для других вещей, это может иметь смысл).

Например:

String line32 = (String) FileUtils.readLines(file).get(31);

http://commons.apache.org/io/api-release/org/apache/commons/io/FileUtils.html#readLines (java.io.File , java. lang.String)

15
ответ дан 24 November 2019 в 07:57
поделиться

Не знаю, но вы могли бы перебрать первую 31 строку, ничего не делая. используя функцию readline () из BufferedReader

FileInputStream fs= new FileInputStream("someFile.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fs));
for(int i = 0; i < 31; ++i)
  br.readLine();
String lineIWant = br.readLine();
38
ответ дан 24 November 2019 в 07:57
поделиться

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

Используйте поток, поддерживающий строку чтения, и просто прочтите первые строки X-1 и выгрузите результаты, а затем обработайте следующую.

2
ответ дан 24 November 2019 в 07:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: