Leggere un file riga per riga nell’ordine inverso

Ho un’applicazione java ee dove uso un servlet per stampare un file di log creato con log4j. Quando si leggono i file di registro, in genere si cerca l’ultima riga del registro e pertanto il servlet sarebbe molto più utile se stampasse il file di registro in ordine inverso. Il mio codice attuale è:

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(); } 

Le implementazioni che ho trovato su Internet implicano l’uso di un StringBuffer e il caricamento di tutti i file prima della stampa, non esiste un modo leggero per cercare la fine del file e leggere il contenuto fino all’inizio del file?