Maison >Java >javaDidacticiel >Comment lire un fichier texte dans une ArrayList en Java ?

Comment lire un fichier texte dans une ArrayList en Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-11 05:59:09606parcourir

How to Read a Text File into an ArrayList in Java?

Java : Lire un fichier texte dans une liste de tableaux

Introduction

Lecture d'un texte fichier dans une liste de tableaux en Java est une tâche de programmation courante. Cet article montre comment y parvenir, en couvrant les techniques qui exploitent les classes Files, String, Integer et List.

Lecture du fichier

Pour lire le fichier, utilisez la méthode Files#readAllLines() pour obtenir une liste de ses lignes. Chaque ligne représente une ligne dans le fichier texte.

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

Partager les lignes

Étant donné que les valeurs du fichier sont séparées par des espaces, utilisez la chaîne#split () pour diviser chaque ligne en valeurs individuelles :

for (String line : lines) {
    String[] values = line.split("\s+");
}

Conversion de chaînes en Entiers

Comme les valeurs du fichier texte sont des entiers, convertissez-les en objets Integer à l'aide de Integer#valueOf() :

for (String value : values) {
    Integer i = Integer.valueOf(value);
}

Ajout à la liste des tableaux

Créez une liste de tableaux et ajoutez-y les entiers convertis à l'aide de List#add() méthode :

List<Integer> numbers = new ArrayList<>();
numbers.add(i);

Combinaison des étapes

En combinant ces étapes, vous pouvez lire le fichier et remplir la liste des tableaux en une seule fois :

List<Integer> numbers = new ArrayList<>();
for (String line : Files.readAllLines(Paths.get("/path/to/file.txt"))) {
    for (String value : line.split("\s+")) {
        Integer i = Integer.valueOf(value);
        numbers.add(i);
    }
}

API Java 8 Stream

En Java 8, vous pouvez simplifier le processus à l'aide de l'API Stream :

List<Integer> numbers = Files.lines(Paths.get("/path/to/test.txt"))
    .map(line -> line.split("\s+")).flatMap(Arrays::stream)
    .map(Integer::valueOf)
    .collect(Collectors.toList());

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!

Déclaration:
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