Comment lire un fichier à une chaîne de caractères en Java

  1. Files.readString() pour lire une chaîne de caractères d’un fichier en Java 11
  2. Files.lines(file_path) pour lire le fichier à la chaîne en Java 8
  3. Files.readAllLines() pour lire la chaîne de caractères d’un fichier en Java 7
  4. BufferedReader.readLine pour lire une chaîne de caractères d’un fichier

Nous présenterons comment nous pouvons lire le contenu d’un fichier et le convertir ensuite en une chaîne Java.

Le fichier testFile.txt, qui contient une partie du contenu que nous voulons lire comme une chaîne Java, est présenté ci-dessous.

A
B
C
D
1
2
3

Files.readString() pour lire une chaîne de caractères d’un fichier en Java 11

Java 11 apporte une nouvelle méthode Files.readString() qui nous permet de lire le fichier facilement et sans écrire beaucoup de code.


import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {

    public static void main(String[] args) {

        Path path = Paths.get("/Projects/testFile.txt");
      
        try {
            String content = Files.readString(path);
            System.out.println(content);
        }catch (IOException e){
            e.printStackTrace();
        }

        }
}

Production:

A
B
C
D
1
2
3

Files.lines(file_path) pour lire le fichier à la chaîne en Java 8

L’API Stream a été introduite dans Java 8, qui traite l’ensemble des données de différentes manières.

La classe Files, qui fait partie du paquet java.NIO, contient une méthode lines() qui produit Stream<String> ou un flux de chaînes de caractères à partir d’un fichier texte.

Essayons de convertir le contenu du fichier en chaîne Java en utilisant l’API Stream.


import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {

    public static void main(String[] args){

      try{
        Path path = Paths.get("/Projects/testFile.txt");
        Stream<String> lines = Files.lines(path);

            String content = lines.collect(Collectors.joining(System.lineSeparator()));
            System.out.println(content);
            lines.close();
      }catch(IOException e){
        e.printStackTrace();
      }
    }
}

Production:

A
B
C
D
1
2
3
Remarque

N’oubliez jamais de fermer le flux après l’avoir utilisé. Remarquez les lines.close().

Elle assure la fermeture du flux une fois que le contenu a été imprimé.

Files.readAllLines() pour lire la chaîne de caractères d’un fichier en Java 7

La lecture des fichiers n’était pas si facile avant Java 7, qui a apporté la nouvelle méthode au paquet java.nio. Il s’agit de la méthode Files.readAllLines() qui renvoie une liste de chaînes de caractères du fichier. Chaque chaîne représente une seule ligne du fichier.

import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

public class Main {

    public static void main(String[] args) {

        try {

            Path path = Paths.get("/Projects/testFile.txt");
            List<String> contentList = Files.readAllLines(path, StandardCharsets.UTF_8);
            System.out.println(contentList);
            
        }catch (IOException e){
            e.printStackTrace();
        } 
    } 
} 

Production:

[A, B, C, D, 1, 2, 3]

BufferedReader.readLine pour lire une chaîne de caractères d’un fichier

Nous pouvons également obtenir le contenu de notre fichier en utilisant la classe BufferedReader, qui lit le texte à partir d’un flux d’entrée.


import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {

    public static void main(String[] args) throws IOException {

        String path = "/Projects/testFile.txt";

        try (BufferedReader br = new BufferedReader(new FileReader(path))) {

            String line = br.readLine();
            StringBuilder sb = new StringBuilder();

            while (line != null) {
                sb.append(line).append("\n");
                line = br.readLine();
            }

            String fileAsString = sb.toString();
            System.out.println(fileAsString);
        }
}
}

Production:

A
B
C
D
1
2
3

Article connexe - Java String

  • Comment convertir la date d'une chaîne en horodatage en Java
  • Comment convertir une date en chaîne de caractères en Java
  • Article connexe - Java File

  • Comment convertir une chaîne de caractères en un Int en Java
  • Comment convertir une liste de tableaux en une chaîne de caractères en Java