7
votes

Quelles sont les meilleures classes les plus simples utilisées pour lire des fichiers en Java?

Je suis intéressé par un traitement de ligne simple.


1 commentaires

Dans cette question récente, une question connexe Il y a une bonne introduction aux classes IO intégrées du fichier intégrées de JDK: Stackoverflow.com/questions/19430071/...


7 Réponses :



8
votes

Scanner:

for(Scanner sc = new Scanner(new File("my.file")); sc.hasNext(); ) {
  String line = sc.nextLine();
  ... // do something with line
}


1 commentaires

Aimez la grande variété de méthodes, Scanner Offres. Merci. Simple et propre.




4
votes

Vous pouvez utiliser bufferedreader code>, quelque chose comme ceci: -

try {
    BufferedReader input = new BufferedReader(new FileReader(new File("c:\\test.txt")));
    try {
        String line = null;
        while ((line = input.readLine()) != null) {
            System.out.println(line);
        }
    } finally {
        input.close();
    }
} catch (IOException ex) {
    ex.printStackTrace();
}


2 commentaires

Scanner semble être plus simple et a plus d'options. Mais merci d'avoir mis le code nécessaire ici. +1


Juste "au fait", lorsque Java7 vient, il aura "la gestion automatisée des ressources" et signifie que nous n'aurons pas besoin de essayer {...} enfin {out.close ()} - La fermeture sera effectuée par JVM, et cela s'en occupera.



2
votes

Si vous êtes prêt à utiliser Bibliothèques 3ème partie , puis classes utilitaires telles que Fichiers CODE> de GUAVA a> ou FLITUTILS de Apache Commons IO Faites des fichiers de lecture très simples.

Exemples ci-dessous (où fichier de fichier = nouveau fichier ("chemin / fichier / fichier.txt") code>) de lecture de toutes les lignes d'un fichier texte dans une liste et de lire le fichier entier dans une liste. Chaîne. P>

GUAVA: P>

List<String> lines = FileUtils.readLines(file, "UTF-8");

String contents = FileUtils.readFileToString(file, "UTF-8")


2 commentaires

J'essayais de ne pas utiliser les bibliothèques tierces, en effet. Mais j'avais entendu parler de cette bibliothèque avant. Il semble gagner l'acceptation.


@Jean. Heh, "l'acceptation de gagne" pourrait être un moyen de la mettre. Mon expérience est que les libs d'Apache Commons ont été un pilier dans des projets de Java typiques depuis le début des 00 (plus récemment rejoint / remplacé par des libs de Google, tels que Guava). Bien sûr, il faut envisager attentivement avant d'ajouter des dépendances, mais des trucs comme les Commons IO tiront souvent son poids facilement.



0
votes

Vous pouvez également utiliser InputStreamReader (que vous créez à l'aide d'un fichier INPUTREAM comme fichierInputStream) enveloppé dans une mémoire bufferedreader pour une lecture de ligne simple du fichier.


0 commentaires

1
votes

Vous pouvez essayer les fichiers d'Apache. méthodes telles que xxx


0 commentaires