Rumah >Java >javaTutorial >Bagaimana untuk Membaca Fail dari Akhir ke Mula Menggunakan BufferedReader di Java?

Bagaimana untuk Membaca Fail dari Akhir ke Mula Menggunakan BufferedReader di Java?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-24 10:26:29196semak imbas

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

Membaca Fail dari Akhir hingga Mula Menggunakan BufferReader dalam Java

Masalah:
Anda perlu membaca fail dari akhir hingga permulaan, dalam susunan terbalik, menggunakan BufferedReader.

Penyelesaian:
Kelas BufferedReader standard tidak menyokong pembacaan fail dalam susunan terbalik. Walau bagaimanapun, anda boleh menggunakan kelas RandomAccessFile untuk mencapai ini. Berikut ialah contoh cara anda boleh melakukannya:

<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>

Dalam contoh ini, RandomAccessFile digunakan untuk membaca fail dari hujung dengan bermula pada penghujung fail dan melaraskan penuding fail ke belakang untuk setiap baris dibaca. Apabila setiap baris dibaca, kedudukan permulaannya dilaraskan dalam fail sehingga permulaan fail dicapai, membolehkan anda membaca fail dalam susunan terbalik.

Atas ialah kandungan terperinci Bagaimana untuk Membaca Fail dari Akhir ke Mula Menggunakan BufferedReader di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn