Lecture d'un fichier ligne par ligne en Java
En terme de perf pour un tres grand fichier texte c'est quoi la meillure façon/API en java pour le faire,
j'ai vu des sites parler de Scanner :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Scanner scanner=new Scanner(new File(dataFileName));
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
ContractDunningData currentContract = new ContractDunningData();
System.out.println(line);
//TODO 25/06 => Here each data from line & put in right property of "ContractDunningData"
contractDataList.add(currentContract);
}
scanner.close(); |
Merci
Scanner par ligne et pour le fichier ?
Pour résumer j'ai 2 questions :
- en terme de perf le Scanner est conseillé ? pour des grands fichiers ?
- J'ai besoin de la classe Scanner pour lire ligne par ligne mais aussi je veux lire les différents champs d'une ligne délimités par un séparateur, j'ai trouvé un ex de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Reader reader = null;
// initialisation du reader ...
Scanner scanner=new Scanner(reader);
// L'expression régulière qui délimite les champs
scanner.useDelimiter(Pattern.compile("[\t\n]"));
// On boucle sur chaque champ detecté
int champ;
while (scanner.hasNext()) {
// Si le champ n'est pas un entier, une exception de type InputMismatchException sera levée
champ = scanner.nextInt();
//Utilisation du champ...
} |
sachant que dans mon code j'utilise déjà un scanner pour lire mon fichier ligne par ligne :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
Scanner scanner=new Scanner(new File(dataFileName));
int countFileLines = 0 ;
while (scanner.hasNextLine()) {
}
scanner.close(); |
est ce possible d'utiliser le meme scanner pour faire les 2 sinon comment faire ?
Merci