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!




Share

Commentami!

About Mattepuffo.com

Blog dedicato all'informatica e alla programmazione!
Tutti i contenuti di questo blog, tranne casi particolari, sono sotto licenza Licenza Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.5. .

2664 articoli
310 commenti
19 progetti
Altri link
  • About
  • Scrivimi
  • Copyright
  • Sitemap
  • matteo.ferrone@yahoo.it
  • GitHub
  • Privacy Policy