Lire le contenu d’un fichier texte avec le JDK8

Je suis en train de réaliser quelques POCS sur ELASTICSEARCH et j’en profite pour me (re)mettre à niveau sur le JDK8.

Une des grosses nouveautés du JDK7 et qui a été suivie par le JDK8 est la manipulation de fichiers avec L’API java.nio.file Les classes Path et Files pour ne citer qu’elles, simplifient grandement la vie du développeur.

Voici un rapide exemple

Lire le contenu d’un fichier texte et mettre le tout dans une chaîne de caractères

Version JDK6

 

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/mapping.elastic")));
StringBuilder contentBuilder = new StringBuilder();
 String line = null;
 while((line=bufferedReader.readLine())!=null){
     contentBuilder.append(line);
 }
 bufferedReader.close();

String content = contentbuilder.toString();

Version JDK7

List<String> list = Files.readAllLines(Paths.get(getClass().getResource("/mapping.elastic").toURI()));
StringBuilder mappingbuilder= new StringBuilder();
for(String currentLine : list){
    mappingbuilder.append(currentLine);
}
String content = mappingbuilder.toString();

Version JDK8

String content = Files.lines(Paths.get(getClass().getResource("/mapping.elastic").toURI())) 
.collect(Collectors.joining());

Bon vous allez me dire, il était temps, et vous n’avez pas tort. En tout cas, on notera que ça va dans le bon sens, à savoir éviter de se tartiner une dizaine de lignes de code pour réaliser une opération aussi basique

Vus : 654
Publié par Littlewing : 368