ホームページ  >  記事  >  Java  >  Java で BufferedReader を使用してファイルを最初から最後まで読み取る方法は?

Java で BufferedReader を使用してファイルを最初から最後まで読み取る方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-24 10:26:29117ブラウズ

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

Java で BufferReader を使用してファイルを最後から最初に読み取る

問題:
を読む必要がありますBufferedReader を使用して、ファイルの最後から最初まで逆の順序で読み込みます。

解決策:
標準の BufferedReader クラスは、逆の順序でのファイルの読み取りをサポートしていません。ただし、RandomAccessFile クラスを利用してこれを実現できます。これを行う方法の例を次に示します。

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

この例では、RandomAccessFile を使用して、ファイルの最後から開始してファイル ポインタを後方に調整してファイルを最後から読み取ります。ラインが読まれました。各行が読み取られると、ファイルの先頭に到達するまでファイル内の開始位置が調整され、ファイルを逆の順序で読み取ることができます。

以上がJava で BufferedReader を使用してファイルを最初から最後まで読み取る方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。