Eine Datei von Ende bis Anfang mit BufferReader in Java lesen
Problem:
Sie müssen lesen Eine Datei vom Ende zum Anfang, in umgekehrter Reihenfolge, mit einem BufferedReader.
Lösung:
Die Standardklasse BufferedReader unterstützt das Lesen einer Datei in umgekehrter Reihenfolge nicht. Sie können dies jedoch mithilfe der RandomAccessFile-Klasse erreichen. Hier ist ein Beispiel, wie Sie das machen können:
<code class="java">import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.RandomAccessFile; public class ReverseFileReader { public static void main(String[] args) { // Create a RandomAccessFile to access the file RandomAccessFile file = null; BufferedReader reader = null; try { file = new RandomAccessFile("filepath.txt", "r"); // Get the file size long fileSize = file.length(); // Start reading from the end of the file file.seek(fileSize - 1); // Initialize a BufferedReader to read from the RandomAccessFile reader = new BufferedReader(new FileReader(file.getFD())); // Read the file line by line in reverse order while ((file.getFilePointer()) > 0) { // Get the current line String line = reader.readLine(); // Adjust the file pointer to the beginning of the previous line file.seek(file.getFilePointer() - line.length() - 1); // Print the line System.out.println(line); } } catch (FileNotFoundException e) { System.out.println("File not found."); } catch (IOException e) { System.out.println("Error reading file."); } finally { // Close the file and the reader try { if (file != null) file.close(); if (reader != null) reader.close(); } catch (IOException e) {} } } }</code>
In diesem Beispiel wird RandomAccessFile verwendet, um die Datei vom Ende zu lesen, indem am Ende der Datei begonnen und der Dateizeiger für jede Datei nach hinten angepasst wird Zeile gelesen. Beim Lesen jeder Zeile wird ihre Startposition in der Datei angepasst, bis der Anfang der Datei erreicht ist, sodass Sie die Datei in umgekehrter Reihenfolge lesen können.
Das obige ist der detaillierte Inhalt vonWie lese ich eine Datei vom Ende bis zum Anfang mit BufferedReader in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!