ホームページ >Java >&#&チュートリアル >Java で BufferedReader を使用してファイルを最初から最後まで読み取る方法は?
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 サイトの他の関連記事を参照してください。