Maison >Java >javaDidacticiel >Comment lire un fichier de la fin au début en utilisant BufferedReader en Java ?
Lecture d'un fichier de la fin au début en utilisant BufferReader en Java
Problème :
Vous devez lire un fichier de la fin au début, dans l'ordre inverse, à l'aide d'un BufferedReader.
Solution :
La classe BufferedReader standard ne prend pas en charge la lecture d'un fichier dans l'ordre inverse. Cependant, vous pouvez utiliser la classe RandomAccessFile pour y parvenir. Voici un exemple de la façon dont vous pouvez procéder :
<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>
Dans cet exemple, RandomAccessFile est utilisé pour lire le fichier à partir de la fin en commençant par la fin du fichier et en ajustant le pointeur de fichier vers l'arrière pour chaque ligne lue. Au fur et à mesure de la lecture de chaque ligne, sa position de départ est ajustée dans le fichier jusqu'à ce que le début du fichier soit atteint, vous permettant de lire le fichier dans l'ordre inverse.
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!