Какой лучший способ прочитать последнюю строку текстового файла в Java? - PullRequest
4 голосов
/ 14 сентября 2011

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

Спасибо

Ответы [ 2 ]

7 голосов
/ 14 сентября 2011

Самый простой способ сделать это - просто перебрать строки в файле и остановиться, когда вы дойдете до конца. Например:

// I assume this is disposed properly etc
private static String getLastLine(BufferedReader reader) throws IOException {
    String line = null;
    String nextLine;
    while ((nextLine = reader.readLine()) != null) {
        line = nextLine;
    }
    return line;
}

Это вернет ноль для пустого читателя.

Если я не знал, что мне придется читать действительно большой файл, это то, что я буду делать. Попытка сделать это, перейдя прямо к последней строке, hard . Действительно сложно, особенно если вам нужна кодировка переменной ширины, такая как UTF-8.

3 голосов
/ 14 сентября 2011

вы можете использовать RandomAccessFile 1. Перейти в конец файла (новый файл («ваш_файл»). Length ()) 2. прочитать символ и использовать метод поиска файла произвольного доступа в цикле.3. когда вы увидели «\ n» (или что-то еще в вашей системе) остановитесь.4. Перечитайте файл с места, где вы остановились, до конца файла.Это необязательно, если вы как-то запомнили то, что читали до сих пор

Просто пример Google для RandomAccessFile.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...