Я пытаюсь получить последнюю строку файла, но мой вывод показывает, что он никогда не находит его. Я также пытался найти «[», с которого начинаются все строки, но если переходы не были совершенными, программа не пропустит «[». Я пытался найти "\ r \ n", System.getProperty ("line.separator"), \ r и \ n. Скорее всего, это глупая ошибка, но если она у меня есть и я не могу ее найти, то кто-то другой может столкнуться с ней.
RandomAccessFile raf = new RandomAccessFile(fileLocation, "r");
//Finds the end of the file, and takes a little more
long lastSegment = raf.length() - 5;
//**Looks for the new line character \n?**
//if it cant find it then take 5 more and look again.
while(stringBuffer.lastIndexOf("\n") == -1) {
lastSegment = lastSegment-5;
raf.seek(lastSegment);
//Not sure this is the best way to do it
String seen = raf.readLine();
stringBuffer.append(seen);
}
//Trying to debug it and understand
int location = stringBuffer.lastIndexOf("\n");
System.out.println(location);
FileInputStream fis = new FileInputStream(fileLocation);
InputStreamReader isr = new InputStreamReader(fis, "UTF8");
BufferedReader br = new BufferedReader(isr);
br.skip(lastSegment);
System.out.println("br.readLine() " + br.readLine());
}
Идея из кода исходит от
Быстро читать последнюю строку текстового файла?
Файл, который я использую, это
http://www.4shared.com/file/i4rXwEXz/file.html
Спасибо за помощь, и если вы видите какие-либо другие места, где мой код может быть улучшен, сообщите мне