Прочитать последнюю строку в тхт файле

203
27 февраля 2019, 02:50

Подскажите пожалуйста, нужно прочитать последнюю строку в тхт файле.. Нашел такой пример, но он не выводит юникод(вместо него кракозябры), можно этот код как-то подправить, или подскажите другое решение?

private static String ReadLastLine(File file) throws FileNotFoundException, IOException {
    String result = null;
    try (RandomAccessFile raf = new RandomAccessFile(file, "r")) {
        long startIdx = file.length();
        while (startIdx >= 0 && (result == null || result.length() == 0)) {
            raf.seek(startIdx);
            if (startIdx > 0)
                raf.readLine();
            result = raf.readLine();
            startIdx--;
        }
    }
    return result;
}
Answer 1
String current, last = null;
BufferedReader bufferedReader = new BufferedReader(new FileReader("/file"));
while ((current = bufferedReader.readLine()) != null) {
    last = current;
}
System.out.println(last);//result
Answer 2

В apache commons-io есть ReversedLinesFileReader. Он читает файл снизу вверх, соответственно вам достаточно прочитать только первую строку:

private static String readLastLine(File file) throws IOException {
    ReversedLinesFileReader fr = new ReversedLinesFileReader(file);
    String result = fr.readLine();
    fr.close();
    return result;
}
READ ALSO
Spring кириллица в аргументах get запросов

Spring кириллица в аргументах get запросов

Есть проект, к которому подключен Spring 32

230
Выбор тестов для запуска в Jenkins

Выбор тестов для запуска в Jenkins

Есть следующая проблема: Необходимо настроить возможность в билде запускать тесты по одному/выбрав несколько конкретных

219
Почему возникает исключение OutOfMemoryError?

Почему возникает исключение OutOfMemoryError?

Работает пока GC не удалит объект, на который есть только "мягкая" (monkey) ссылка

201