<<no stack trace available>> après lecture d'un très gros fichier

Résolu
Signaler
Messages postés
5
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
11 janvier 2005
-
Messages postés
28
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
2 juin 2005
-
Bonjour à tous !!!
Désolée si le sujet est redondant, mais je n'ai pas trouvé mon bonheur dans le forum (et sur le net, évidement).
Voila mon problème :

Je dois parcourir un fichier à la recherche de mots clés, j'utilise donc un BufferedReader, le soucis est que lorsque je lance mon application, j'ai une belle erreur au bout de 40 secondes de recherche :

Exception in thread "main" java.lang.NullPointerException
<<no stack trace available>>

Je suppose que la taille de mon fichier en est la cause, environ 15 Millions de lignes (100mo)...
Je ne sais pas trop quoi faire, pouvez vous m'aider ?

import java.io.*;
import java.util.*;


public class LireFichierCASE{
public static void main(String[] args) throws IOException{
String nomFich = "unFichier.case";
String ligneLue = "";
BufferedReader entree = new BufferedReader( new FileReader(nomFich));


do{
ligneLue = entree.readLine();
StringTokenizer tok = new StringTokenizer(ligneLue, " ");
if(ligneLue.indexOf("bcc_dz") > 0)
{
System.out.println("Ligne lue : "+ligneLue);
}
}
while(ligneLue != null);
entree.close();
System.out.println("parcours du fichier terminé...");
}
}

Sarah

5 réponses

Messages postés
28
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
2 juin 2005

Bonjour Sarah !



Je ne sais pas si c'est du à ça mais on ne sais jamais...

Si tu arrives à la fin de ton fichier, tu te retrouves avec ligneLue = null

Ensuite tu fais appel au constructeur de StringTokenizer(ligneLue) -> NullPointerException !!!!

je te propose donc de faire ton test de l'autre sens (ou comme tu as envie )



while((ligneLue =
entree.readLine())
!= null){

StringTokenizer tok = new StringTokenizer(ligneLue, " ");
if(ligneLue.indexOf("bcc_dz") > 0)
{
System.out.println("Ligne lue : "+ligneLue);
}
}



Bon, dans le cas que je te propose, on est sur que ça ne provient pas du new StringTokenizer ...



Tiens moi au courant !!




Jef
Messages postés
28
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
2 juin 2005

Hello !

Je suis pas du tout sûr que ce soit cela, mais si certaines de tes occurences débutent les lignes, à mon avis c'est normal... Remplace ton > par >=

Ca peut être à cause de ça...

Bon courage pour la suite !
Jef
Messages postés
5
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
11 janvier 2005

Bonjour Jef !!!
Merci beaucoup pour ta réponse, elle répondait précisément à ma question :o)
L'erreur n'apparait plus, c'est déjà super, maintenant, il faut que j'arrive à comprendre pourquoi mon code ne trouve pas toutes les occurences du mot recherché Oo
est-il possible que le code ne parcours pas tout le fichier, malgrès que le prog m'affiche bien mon "parcours du fichier terminé..." ?

Merci beaucoup Jef, bonne continuation, et à bientot :o)

Sarah
Messages postés
5
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
11 janvier 2005

Bonjour Jef,
Merci beaucoup, tout fonctionne comme je veux :o)
Je reviendrai surement, mais merci encore.

Au plaisir.

Sarah
Messages postés
28
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
2 juin 2005

Pas de problème !



@bientôt peut être !

Jef