7
votes

Java - Lisez de nombreux fichiers TXT sur un dossier et traitez-les

J'ai suivi ce Question :

Maintenant, dans mon cas, j'ai 720 fichiers nommés de cette manière: "DOM 24 mars 2013_00.50.35_128.txt", chaque fichier a une date et une heure différentes. Dans la phase de test, j'ai utilisé Scanner, avec un fichier TXT spécifique, pour effectuer des opérations à ce sujet:

scanner S = nouveau scanner (nouveau fichier ("Stuff.txt"));

Ma question est la suivante:

Comment puis-je réutiliser le scanner et lire les 720 fichiers sans avoir à définir le nom précis sur le scanner?

merci


3 commentaires

Voir ici Stackoverflow.com/Questtions / 189094 / How-to-Scan-A-dossier-in-j Ava


Pouvez-vous simplement lire tous les fichiers du répertoire ou avoir plus de fichiers que vous ne souhaitez pas être lu avec différents schémas de dénomination dans le répertoire?


Vous ne pouvez pas. Un nouveau scanner serait créé pour chaque fichier.


4 Réponses :


16
votes

En supposant que vous avez tous les fichiers d'un endroit: xxx

Notez que si vous avez des fichiers que vous ne souhaitez pas inclure, vous pouvez donner listfiles () < / code> a FileFilter argument à filtrez-les.


3 commentaires

Oui, tous les fichiers sont dans le même dossier.


Putain, tu viens de me battre :) +1 pour me battre à la réponse


Comment pouvons-nous lire les multiples fichiers au cas où les fichiers sont situés dans différents répertoires?



7
votes

Oui, créez votre objet de fichier en le signalant sur un répertoire, puis répertoriez les fichiers de ce répertoire.

File dir = new File("Dir/ToYour/Files");

if(dir.isDir()) {
   for(File file : dir.listFiles()) {
      if(file.isFile()) {
         //do stuff on a file
      }
   }
} else {
   //do stuff on a file
}


0 commentaires

1
votes
    File file = new File(folderNameFromWhereToRead);

    if(file!=null && file.exists()){
        File[] listOfFiles = file.listFiles();

        if(listOfFiles!=null){

            for (int i = 0; i < listOfFiles.length; i++) {
                if (listOfFiles[i].isFile()) {
                      // DO work
                }
            }
        }
    }

4 commentaires

Je ne suis pas expert, mais je pense que votre si (listOffiles! = Null) est inutile. Vous venez de créer le ListOffiles alors comment peut-il être null?


Ughh .. même avec votre si (fichier! = Null) ... Vous testez si une référence d'objet existe que vous venez de faire avant le test!


NULL Vérification sur Lisoffiles est correct (cela pourrait arriver si le chemin existe mais est un fichier) mais sur le fichier n'est pas requis. +1 pour le isfile () vérifier quand même.


@RAVITHAPLIYAL Bon appel, je n'ai pas pensé à cela avec ListOffiles car j'aurais écrit mon code pour vérifier si fichier est un répertoire, puis traitée listfiles () .



3
votes

Vous pouvez essayer cela de cette manière xxx


0 commentaires