Maison > Java > javaDidacticiel > le corps du texte

Comment lire un fichier de la fin au début en utilisant BufferedReader en Java ?

Mary-Kate Olsen
Libérer: 2024-10-24 10:26:29
original
125 Les gens l'ont consulté

How to Read a File from End to Start Using BufferedReader in 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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!