Maison >Java >javaDidacticiel >Comment lire un fichier dans l'ordre inverse en Java ?
Je dois lire un fichier dans l'ordre inverse, en commençant par la dernière ligne et progressant vers le début.
Utilisation de l'analyse de fichiers et de lignes à accès aléatoire
Pour lire un fichier dans l'ordre inverse à l'aide de BufferedReader, nous pouvons utilisez RandomAccessFile pour manipuler le pointeur de fichier et rechercher les sauts de ligne dans l'ordre inverse.
Voici comment implémenter cette approche en 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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!