Leggere le ultime righe di un file in Java

Mattepuffo's logo
Leggere le ultime righe di un file in Java

Leggere le ultime righe di un file in Java

Supponendo di avere un file semplice con questo contenuto:

aaaa
bbbb
cccc

Vogliamo leggere le ultime due righe usando Java.

Per velocizzare questa operazione ci viene in aiuto Apache Commons IO; se usate Maven:

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>

Qui sotto il codice:

import org.apache.commons.io.input.ReversedLinesFileReader;

import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        int numeroRigheDaLeggere = 2;
        File file = new File("test.txt");
        List<String> result = new ArrayList<>();

        try (ReversedLinesFileReader reader = new ReversedLinesFileReader(file, StandardCharsets.UTF_8)) {
            String line = "";
            while ((line = reader.readLine()) != null && result.size() < numeroRigheDaLeggere) {
                result.add(line);
            }

            result.forEach(x -> System.out.println(x));
        } catch (IOException e) {
            e.getMessage();
        }
    }
}

In pratica ReversedLinesFileReader legge il file contrario; noi gli indichiamo quante righe leggere.

Salviamo tutto in una lista, e poi la leggiamo.

Enjoy!


Condividi

Commentami!