web-dev-qa-db-fra.com

Comment obtenir le contenu d'un fichier en Java?

pour obtenir le contenu d'un fichier txt, j'utilise généralement un scanner et itère sur chaque ligne pour obtenir le contenu:

Scanner sc = new Scanner(new File("file.txt"));
while(sc.hasNextLine()){
    String str = sc.nextLine();                     
}

L'API Java fournit un moyen d'obtenir le contenu avec une ligne de code comme:

String content = FileUtils.readFileToString(new File("file.txt"))
34
Upvote

Avec Java 7, il existe une API dans ce sens.

Files.readAllLines (Chemin d'accès, Charset cs)

15
rich

Pas l'API intégrée - mais Guava le fait, parmi ses autres trésors. (C'est une fabuleuse bibliothèque.)

String content = Files.toString(new File("file.txt"), Charsets.UTF_8);

Il existe des méthodes similaires pour lire un fichier lisible, ou pour charger l'intégralité du contenu d'un fichier binaire sous forme de tableau d'octets, ou pour lire un fichier dans une liste de chaînes, etc.

Notez que cette méthode est désormais obsolète. Le nouvel équivalent est:

String content = Files.asCharSource(new File("file.txt"), Charsets.UTF_8).read();
26
Jon Skeet

commons-io a:

IOUtils.toString(new FileReader("file.txt"), "utf-8");
15
Bozho
import Java.io.IOException;
import Java.nio.file.Files;
import Java.nio.file.Paths;

public static void main(String[] args) throws IOException {
    String content = Files.readString(Paths.get("foo"));
}

De https://docs.Oracle.com/en/Java/javase/11/docs/api/Java.base/Java/nio/file/Files.html#readString (Java.nio.file.Path )

8
Thomas Grainger

Vous pouvez utiliser la classe FileReader avec le BufferedReader pour lire le fichier texte.

File fileToRead = new File("file.txt");

try( FileReader fileStream = new FileReader( fileToRead ); 
    BufferedReader bufferedReader = new BufferedReader( fileStream ) ) {

    String line = null;

    while( (line = bufferedReader.readLine()) != null ) {
        //do something with line
    }

    } catch ( FileNotFoundException ex ) {
        //exception Handling
    } catch ( IOException ex ) {
        //exception Handling
}
4
Saclyr Barlonium