ホームページ >Java >&#&チュートリアル >Javaでファイルを逆の順序で読み取るにはどうすればよいですか?
ファイルを最後の行から始めて逆の順序で読み取る必要があります。
ランダム アクセス ファイルとライン スキャンの使用
BufferedReader を使用してファイルを逆順に読み取るには、次のことができます。 RandomAccessFile を利用してファイル ポインタを操作し、逆の順序で改行をスキャンします。
Java でこのアプローチを実装する方法は次のとおりです:
<code class="java">import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; public class ReverseFileReader { public static void readAndReverse(String filePath) { try { // Create a RandomAccessFile instance for the file RandomAccessFile file = new RandomAccessFile(filePath, "r"); // Calculate the file length long fileLength = file.length(); // Create an ArrayList to store the lines of the file ArrayList<String> lines = new ArrayList<>(); // Set the file pointer to the end of the file file.seek(fileLength); // Scan backwards line by line, starting from the last line while (file.getFilePointer() > 0) { // Find the previous line break and move the file pointer to that position long lineStart = file.getFilePointer(); while (file.getFilePointer() > 0 && file.readByte() != '\n') { file.seek(file.getFilePointer() - 1); } // Read the line and add it to the list file.seek(lineStart); lines.add(file.readLine()); } // Close the file file.close(); // Reverse the order of the lines in the list Collections.reverse(lines); // Print the lines in reverse order for (String line : lines) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { // Specify the file path to be read in reverse order String filePath = "/path/to/your/file.txt"; // Read and reverse the file readAndReverse(filePath); } }</code>
以上がJavaでファイルを逆の順序で読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。