Java Lire les Gros Fichier Texte Avec 70million ligne de texte

J'ai un gros fichier de test avec 70 millions de lignes de texte.
Je dois lire le fichier ligne par ligne.

J'ai utilisé deux approches différentes:

InputStreamReader isr = new InputStreamReader(new FileInputStream(FilePath),"unicode");
BufferedReader br = new BufferedReader(isr);
while((cur=br.readLine()) != null);

et

LineIterator it = FileUtils.lineIterator(new File(FilePath), "unicode");
while(it.hasNext()) cur=it.nextLine();

Est-il une autre approche qui peut rendre cette tâche plus rapidement?

Cordialement,

  • Que faites-vous avec ces lignes? Un multithread solution peut accélérer les choses si elle peut être appliquée (et ça dépend de ce que vous faites avec vos données et comment il est stocké sur le disque)
  • "Plus vite" comment? Moins de temps PROCESSEUR? Moins de la paroi de temps? Quelque chose d'autre? Ma conjecture est que votre mur de temps pour juste un droit de lecture sera dominée par le disque I/O. Mais en fonction de ce que vous essayez de faire, en séparant les CPU-lourds et I/O-lourdes tâches aux différents threads peuvent vous donner un gain de performances significatif.
  • mieux utiliser java 8 streaming fonctionnalité
InformationsquelleAutor zwang | 2012-12-26