899 votes

Comment lire un gros fichier texte ligne par ligne en utilisant Java ?

J’ai besoin de lire un fichier texte volumineux d’environ 5-6 Go, ligne par ligne en utilisant Java.

Comment puis-je faire cela rapidement ?

1127voto

Peter Lawrey Points 229686

Un modèle commun est d’utiliser

Vous pouvez lire les données plus rapidement si vous assumez il n’y a pas de caractère d’encodage. par exemple ASCII-7, mais il ne fera pas beaucoup de différence. Il est fort probable que ce que vous faites avec les données prendra beaucoup plus de temps.

EDIT : Un modèle moins commun à utiliser qui permet d’éviter l’étendue des `` qui fuit.

164voto

NAVEED Points 16576

Regardez ce blog :

La taille du tampon peut être spécifiée, ou la taille par défaut peut-être être utilisée. La valeur par défaut est suffisante pour la plupart des cas.

110voto

msayag Points 561

Une fois java-8 est sorti (mars 2014), vous serez en mesure d’utiliser les flux :

Toutes les lignes dans le fichier d’impression :

38voto

DarkStar Points 121

Voici un exemple avec erreur complet manutention et en soutenant les spécification de charset pour Java avant 7. Avec Java 7, vous pouvez utiliser la syntaxe try-with-resources, qui rend le code plus propre.

Si vous voulez juste le jeu de caractères par défaut, vous pouvez ignorer l’InputStream et utiliser FileReader.

Voici la version Groovy, avec gestion complète de l’erreur :

36voto

Pih Points 1641

Utiliser le BufferedReader, lire, mettre dans une mémoire tampon (évidemment  :-)) et après avoir jeter le tampon :

Prograide.com

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.

Powered by:

X