Comment obtenir le contenue d'un fichier texte ?! [Résolu]

Signaler
Messages postés
47
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
24 juillet 2011
-
Messages postés
35
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
30 août 2013
-
bonjour à tous ,je
doit réaliser un programme qui prendre le contenue d'un ensemble de
fichiers texte et faire certains traitement(compter et afficher
l'apparition d'un mot dans le texte),pour cela j'ai utilisé le code
java suivant :

public static void main(String []args)

        {

                int nbr=0; 

                String lire="";

                String chemin="d:\\répertoire\";

                  File repertoire=new File(chemin);

                  File[] liste= repertoire.listFiles();

                 

                  for (int j=0;j<liste.length;j++)

                      {

                      try

                          { File f=liste[j];

                              BufferedReader chainelue = new BufferedReader (new FileReader(f)) ;               

                              lire+=chainelue.readLine();

                              System.out.println("*********** texte"+ ++nbr+" ***********");

                              compterMots(lire);  // ---"compterMots" c'est la méthode de traitement

                              lire="";

                          }

                      catch(IOException e){}                   

                      }

        }

exemple:

le contenue de exemple1.txt

" aa bb aa bb aa cc aa cc bb

  aa bb aa bb aa bb aa bb aa


                                            "
ce code affiche:

*********** texte1 ***********

aa    4

bb    3

cc     2

...     ....

ce code permet d'afficher le traitement d'une seule ligne de chaque fichier texte ;

 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

j'ai essayé avec d'autre solution et j'ai arrivé à le faire marcher avec un seul fichier texte donné,voila le code :

 public static void main(String []args){

    InputStreamReader flog    = null;

    LineNumberReader llog    = null;

    String myLine = null;

    String phrase="";

    try{

        flog = new InputStreamReader(new FileInputStream("d:\\exemple1.txt") );

        llog = new LineNumberReader(flog);

        while ((myLine = llog.readLine()) != null) {

                      phrase=phrase+" "+myLine;

                      // --- Affichage de la ligne lu depuis le fichier


                }

        }catch (Exception e){

               // --- Gestion erreur lecture du fichier (fichier non existant, illisible, etc.)

               System.err.println("Error : "+e.getMessage());

        }

        System.out.println("*** - Texte -***");

        compterMots(phrase);


}

mon problème est que je veu que mon programme prend le contenue de
plusieur fichier texte et qui sont dans un répertoire et faire le
traitement désirer !

merci ...

6 réponses


Salut,

"mon problème est que je veu que mon programme prend le contenue de plusieur fichier texte et qui sont dans un répertoire et faire le traitement désirer !"

Tu veux dire TOUS les .txt du dossier OU CERTAINS des .txt ?
Si c'est TOUS les .txt (ou tous les .autreChose) j'ai une classe (à adapter) qui peut te servir.
Cette classe recherche également dans les sous-dossiers de ce dossier.

Si tu es intéressé je te la donne volontiers.

J'attend ta réponse.

Cordialement,

...\ Dan /...
Messages postés
47
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
24 juillet 2011

salut " Dan ",
ben oui je suis intéressé et je te remercie pour ton aide !

Tu ne reponds pas à la question :  TOUS les .txt du dossier OU CERTAINS des .txt ?

...\ Dan /...

Bon je te donnerai cette classe après quelques modifications, elle te servira peut-être .
Mais avant:

Tu nous donnes 2 exemples, le premier qui lit le ou les  fichiers du dossier TOUS les fichiers (.txt ou autres).
On traite donc un premier fichier (qui semble être le seul ) et qui est par chance un .txt vu le résultat.
Mais tu ne lis qu'une ligne, affiche et comme il n'y a pas d'autre fichier fin de la boucle.

Le dexième exemple, c'est l'inverse (avec le fichier "d:\\exemple1.txt" en dur) tu traites toutes les lignes du .txt.

En s'inspirant de ces 2 codes , on doit pouvoir aboutir non!,,,

import java.io.File;
import java.io.*;

publicclass Lancer
{
static InputStream is = null;
static InputStreamReader isr = null;
static BufferedReader br = null;

publicstaticvoid main(String []args) throws IOException
{
int nbr=0;
String lire="";
String chemin="c:\\Mes programmes\"; // Changer
File repertoire=new File(chemin);
File[] liste= repertoire.listFiles();
File f = null;
if (liste != null)
{
for (int i = 0; i < liste.length; i++)
{
if (liste[i].isFile())
{
if (liste[i].getName().endsWith(".txt"))
{
f = liste[i];
System.out.println(liste[i]);
is = new FileInputStream(f);
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
while ((lire = br.readLine()) != null)
{
lire+= br.readLine() + "\n";
System.out.println("*********** texte"+ ++nbr+" ***********");
System.out.println("Ligne : " + lire);
//compterMots(lire); // ---"compterMots" c'est la méthode de traitement (ne l'ayant pas je n'ai pas testé)
lire="";
}
}
}
}
}
}
}Compile ce code et dis moi si c'est ok.

Cordialement,

...\ Dan /...

Re,

Attention !

lire="";
}
}
}
}
}
}
}Compile ce code et dis moi si c'est ok.

il y a bien 7 }

lire="";
}
}
}
}
}
}
}
Compile ce code et dis moi si c'est ok.

...\ Dan /...
Messages postés
35
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
30 août 2013

slt,
je vois que vous maitraiser bien la gestion des fichiers sur java, moi jai créer une application sur les fichiers seulement le chargement du fichier texte ne s'effectue pas correctement