Probleme avec File / Buffered Reader aide svp

Probleme avec File / Buffered Reader aide svp - Java - Programmation

Marsh Posté le 09-11-2007 à 18:52:18    

Bonjour a tous.
J'ai besoin de faire une fonction qui recherche une chaine de caracteres dans un fichier texte.
Voici la fonction que j'ai crée. Le probleme est que mon fichier n'est pas trouvé...
 
public boolean motExistant(){
 try{
   BufferedReader br = new BufferedReader
       (new FileReader("dico" ));
     int i = 0;
         while(i<100){
           if (this.mot == br.readLine()){
            System.out.println("Mot trouvé dans la liste" );
            return true;
           }
             i++;  
         }
 br.close();  
}
catch(FileNotFoundException exc) { System.out.println("File not found" );  }
catch(IOException ioe) { System.out.println("Erreur IO" ); }
System.out.println("Mot pas trouvé" );
return false;}

Reply

Marsh Posté le 09-11-2007 à 18:52:18   

Reply

Marsh Posté le 10-11-2007 à 04:16:21    

Salut,
 
Le repertoire ou est ton fichier "dico" doit etre dans le CLASSPATH, ou alors indique le chemin complet de ton fichier (c:/repertoire/......./dico).
 
@++

Reply

Marsh Posté le 11-11-2007 à 13:22:09    

Dans le classpath ? J'ai trouvé le fichier mais je dois faire quoi exactement ?

Reply

Marsh Posté le 11-11-2007 à 18:45:35    

Avant de t'aider, j'ai une question : ça sera quoi ton fichier texte ?
En général on évite d'utiliser readLine() dans la vraie vie, parce que quand on fait des tests, les lignes font quelques caractères de long, mais quand tu passes en production, les données deviennent arbitraire, et la longueur des lignes aussi. Mon record c'est une ligne de 119Mo de long.

 

pour chercher si une chaine est présente dans une autre il faut utiliser indexOf(). si tu cherches "tatie" alors "tototatielala" correspond et pourtant ces 2 chaines ne sont pas égales (elles ne font même pas la même longueur).

 

ensuite, que vas-tu faire si ton fichier fait plus de 100 lignes ? la fonction readLine() renvoit null si tu es à la fin du fichier, tu dois donc utiliser ça comme condition d'arrêt de ta boucle.

 

enfin, il y a des subtilités dans ta gestion des exception et de la fermeture du reader, mais je pense que tu n'en es pas encore là.


Message édité par nraynaud le 11-11-2007 à 18:45:45

---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 11-11-2007 à 21:52:05    

Ma fonction doit comparer une chaine avec celle présentes dans mon fichier texte. Si ces 2 chaines sont égales alors la fonction renvoie vrai.
Pour le texte de 100 lignes c'est vrai, j'ai mis 100 pour effectuer un premier test avec un mot qui est dans les 100 premiere lignes.

Reply

Marsh Posté le 11-11-2007 à 21:57:34    

ok, alors utilise ligneLue.equals(motCherché)


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 12-11-2007 à 13:02:05    

Merci, mais le probleme reste le meme, mon fichier texte n'est pas trouvé. ( erreur file not found ).

Reply

Marsh Posté le 12-11-2007 à 13:23:23    

oui, tu ne nous a pas expliqué comment tu cherches ton fichier et d'où tu lances ton programme.
 
 
Le chemin du fichier doit soit être absolu soit être relatif au lieu d'où tu as lancé le java.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 12-11-2007 à 20:09:43    

J'utilise Eclipse. Mon fichier texte se trouve dans le package de mon projet.

Reply

Marsh Posté le 13-11-2007 à 08:54:06    

som1 a écrit :

J'utilise Eclipse. Mon fichier texte se trouve dans le package de mon projet.


C'est joli, hein, toutes les couleurs? Plus gai que la ligne de commande, pas vrai? [:itm]
 
Malheureusement, c'est une mauvaise idée pour un débutant. Tu ne sais pas où/comment tout cela s'exécute, n'est-ce pas? Il est préférable, dans un but didactique, de passer par la ligne de commande. Au passage, tu auras une chance de comprendre comment fonctionne ce foutu classpath.
 
Tu peux aussi utiliser le chemin absolu, ce qui résoudra ton problème dans l'immédiat, mais tu n'apprendras rien et tu seras bien feinté si tu déplaces ton projet ou si qqn d'autre l'ouvre sur sa machine.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 13-11-2007 à 08:54:06   

Reply

Marsh Posté le 13-11-2007 à 15:10:18    

http://java.developpez.com/faq/jav [...] Ressources
 
A comprendre et à utiliser pour résoudre ton problème

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed