Heim  >  Artikel  >  Java  >  Wie lese ich eine Datei vom Ende bis zum Anfang mit BufferedReader in Java?

Wie lese ich eine Datei vom Ende bis zum Anfang mit BufferedReader in Java?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-24 10:26:29117Durchsuche

How to Read a File from End to Start Using BufferedReader in Java?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn