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
.
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
.
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.
Vous pouvez utiliser:
List<String> list = Files.readAllLines(new File("input.txt").toPath(), Charset.defaultCharset() );
Source : API Java 7.0
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"));
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 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.