J'utilise la fonction de base suivante que je copiais du filet pour lire un fichier texteComment faire Java lire de très gros fichiers en utilisant Scanner?
public void read()
{
File file = new File("/Users/MAK/Desktop/data.txt");
System.out.println("Start");
try
{
//
// Create a new Scanner object which will read the data from the
// file passed in. To check if there are more line to read from it
// we check by calling the scanner.hasNextLine() method. We then
// read line one by one till all line is read.
//
Scanner scanner = new Scanner(file);
int lineCount = 0;
if (scanner == null)
{
System.out.println("Null File");
}
else
{
System.out.println(scanner.toString());
}
while (scanner.hasNextLine())
{
String line = scanner.nextLine();
System.out.println("Line " + lineCount +" contain : " + line);
lineCount++;
}
System.out.println("End of Try Bluck");
}
catch (FileNotFoundException e)
{
e.printStackTrace();
System.out.println("Exception Bluck");
}
System.out.println("End");
}
}
Il fonctionne très bien avec les petites et moyennes taille de fichier (qui contiennent 10-20000 ligne de données) Cependant il a échoué à travailler avec un fichier qui contient 500 mille lignes. Je ne reçois pas d'erreur (du moins, je ne vois personne). Alors, quoi de neuf? Que devrais-je faire ici pour pouvoir préparer de si gros fichiers?
Note: Je l'ai déjà augmenté le tas pour 2 Go sur la machine de test qui exécutent Windows Server 2008 avec 4 ram Go. mais cela n'a pas aidé beaucoup!
S'il vous plaît quelqu'un peut me dire ce que je dois faire ici?
Mise à jour 01
Ce qui suit est la sortie
Démarrer
java.util.Scanner [délimiteurs = \ p {} javaWhitespace +] [position = 0 ] [match valide = faux] [besoin d'entrée = faux] [source fermée = faux] [sauté = faux] [séparateur de groupe = \,] [séparateur décimal =.] [préfixe positif =] [préfixe négatif = \ Q- \ E] [suffixe positif =] [suffixe négatif =] [NaN st anneau = \ Q \ E] [chaîne de l'infini = \ Q∞ \ E]
Fin de Try Bluck
Fin
Vous êtes le meilleur! :) BufferedReader a résolu le problème! Merci! Je vous remercie! Je vous remercie! Je vous remercie! Je vous remercie! Je vous remercie! Je vous remercie! Je vous remercie! Je vous remercie! Je vous remercie! Je vous remercie! –