74 votes

Java lit un fichier dans un ArrayList ?

Comment lire le contenu d'un fichier dans un ArrayList<String> en Java ?

Voici le contenu du fichier :

 cat
house
dog
.
.
.

Il suffit de lire chaque mot dans le ArrayList .

135voto

Ahmed Kotb Points 2492

Ce code Java lit chaque mot et le place dans l'ArrayList :

 Scanner s = new Scanner(new File("filepath"));
ArrayList<String> list = new ArrayList<String>();
while (s.hasNext()){
    list.add(s.next());
}
s.close();

Utilisez s.hasNextLine() et s.nextLine() si vous voulez lire ligne par ligne plutôt que mot par mot.

62voto

Vous pouvez utiliser:

 List<String> list = Files.readAllLines(new File("input.txt").toPath(), Charset.defaultCharset() );

Source : API Java 7.0

50voto

Bozho Points 273663

Un one-liner avec commons-io :

 List<String> lines = FileUtils.readLines(new File("/path/to/file.txt"), "utf-8");

Idem pour la goyave :

 List<String> lines = 
     Files.readLines(new File("/path/to/file.txt"), Charset.forName("utf-8"));

28voto

Khan Points 1534

La forme la plus simple que j'aie jamais trouvée est...

 List<String> lines = Files.readAllLines(Paths.get("/path/to/file.txt"));

11voto

Kris Points 190

En Java 8, vous pouvez utiliser des flux et Files.lines :

 List<String> list = null;
try (Stream<String> lines = Files.lines(myPathToTheFile))) {
    list = lines.collect(Collectors.toList());
} catch (IOException e) {
    LOGGER.error("Failed to load file.", e);
}

Ou en tant que fonction incluant le chargement du fichier depuis le système de fichiers :

 private List<String> loadFile() {
    List<String> list = null;
    URI uri = null;

    try {
        uri = ClassLoader.getSystemResource("example.txt").toURI();
    } catch (URISyntaxException e) {
        LOGGER.error("Failed to load file.", e);
    }

    try (Stream<String> lines = Files.lines(Paths.get(uri))) {
        list = lines.collect(Collectors.toList());
    } catch (IOException e) {
        LOGGER.error("Failed to load file.", e);
    }
    return list;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X