У меня есть приложение java ee, в котором я использую сервлет для печати файла журнала, созданного с помощью log4j. При чтении файлов журнала вы обычно ищете последнюю строку журнала, и поэтому сервлет был бы гораздо более полезным, если бы он печатал файл журнала в обратном порядке. Мой реальный код:
response.setContentType("text");
PrintWriter out = response.getWriter();
try {
FileReader logReader = new FileReader("logfile.log");
try {
BufferedReader buffer = new BufferedReader(logReader);
for (String line = buffer.readLine(); line != null; line = buffer.readLine()) {
out.println(line);
}
} finally {
logReader.close();
}
} finally {
out.close();
}
Реализации, которые я нашел в Интернете, включают использование StringBuffer и загрузку всего файла перед печатью, не так ли? Есть ли легкий способ поиска до конца файла и чтения содержимого до начала файла?