IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Exécuter des fichiers en même temps


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Points : 38
    Points
    38
    Par défaut Exécuter des fichiers en même temps
    bonsoir,
    voilà j'a fait un script qui me génée un resultat dans un fichier, il prend en entrée un fichier et donne en sortie un autre fichier.txt mon probléme je veut mettre en entrée plusieurs fichiers au meme temps et avoir en sortie tous les fichies .txt j'arrive pas à connaitre comment genérer tous les noms des fichiers au même temps!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
     
     
    public class ExtraireEtat {
     
     
    	 String[] laitbrut(String ligne)
    		{
    			String []a  = ligne.split("\\s+");
    			return a ;	
    		}	
    	 public  String write(String contenu,String fichier) {    //Fonction écrire dans un fichier
     
    			try {
    				FileWriter fw = new FileWriter (fichier,true);
    				BufferedWriter bw = new BufferedWriter (fw);
    				PrintWriter fichierSortie = new PrintWriter (bw); 
    					fichierSortie.write(contenu+"\n");
    					fichierSortie.flush();
    					fichierSortie.close();
    					bw.close();
    					fw.close();
     
    			}
    			catch (Exception e){
    		System.out.println(e.toString());
    	}
    			return contenu; 
    			}
     
     
    public String readFile(String fichier) { // Fonction lire dans un fichier
     
    	String chaine="";
     
    	// lecture du fichier texte
    	try {
     
    		InputStream ips = new FileInputStream(fichier);
    		InputStreamReader ipsr = new InputStreamReader(ips);
    		BufferedReader lecteurAvecBuffer = null;
    		String ligne;
    		lecteurAvecBuffer = new BufferedReader(new FileReader(fichier));
    		String nom="ergoHN1994014-4-LaitB-3-1e"; // le nom de fichier que je le veut en sortie
    		ligne = lecteurAvecBuffer.readLine();
     
    		 int comp1=0,comp2=0,comp3=0;
    	      StringBuffer sb= new StringBuffer();
     
    	        while ((ligne = lecteurAvecBuffer.readLine()) != null) {
    	            String[] tab=laitbrut(ligne);
     
    	        float    col1 = Float.parseFloat(tab[1]);
    	        float    col2 = Float.parseFloat(tab[2]);
    	        float    col3 = Float.parseFloat(tab[3]);
    	            if (col1 > col2 && col1 > col3){
     
    	                comp1++;
     
    	            }
    	            else if (col2 > col1 && col2 > col3){
     
    	            	comp2++;
     
    	            }
    	             else if (col3 > col2 && col3 > col1){
     
    	               comp3++;
     
     
    	            }   
     
    	                }
     
     
    	        System.err.println("Etat1:"+comp1);
    	        System.err.println("Etat2:"+comp2);
    	        System.err.println("Etat3:"+comp3);
    	        write(comp1+" "+comp2+" "+comp3+" ", "src/"+nom+".txt"); // le fihcier qui contient le resultat
    	        lecteurAvecBuffer.close();
    	    } catch (Exception e) {
    	        System.out.println(e.toString());
    	    }
     
    	    return chaine;
     
    	}
    public static void main(String[] args){
    	ExtraireEtat E=new ExtraireEtat();
     
    	E.readFile("src/ergoHN1994014-4-LaitB-3-1e.dump");	// c'est le fichier en entrée le probléme ici je veux générer tous les fichiers ergoHN...dump au même temp et en sortie avoir les mêmes nom " ergoHN...txt " en .txt
    }
    }
    merci de vous m'aider.

  2. #2
    Membre habitué Avatar de wiss85
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 90
    Points : 184
    Points
    184
    Par défaut
    Bonjour ,

    tu peux utiliser un tableau qui contient le nom des fichiers

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public static void main(String[] args){
    	ExtraireEtat E=new ExtraireEtat();
    	 String[] fichiers={"fichier1","fichier2","fichier3"};
     
            for(int i=0;i<fichiers.length;i++){
     
    			E.readFile(fichiers[i]);
     
    		}
     
    }

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Points : 38
    Points
    38
    Par défaut
    le problème c'est que j'ai 1500 fichiers que je dois les générer , je peux pas écrire 1500 noms c'est trop

  4. #4
    Membre habitué Avatar de wiss85
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 90
    Points : 184
    Points
    184
    Par défaut
    bonjour

    dans cet situation il te faut un script shell ou autre pour récupérer la liste des fichiers

  5. #5
    Membre habitué Avatar de wiss85
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 90
    Points : 184
    Points
    184
    Par défaut
    Bonjour

    pas besoin de script shell ou autre
    java peut le faire

    voici l'exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    File folder = new File("c:/"); //le dossier  qui contient les fichiers 
    File[] listOfFiles = folder.listFiles(); // récupérer la liste des fichiers 
    for (int i = 0; i < listOfFiles.length; i++) {  //parcourir la liste des fichiers 
               if (listOfFiles[i].isFile()) { // vérifier s un fichier ou répertoire 
    	       E.readFile(listOfFiles[i].getName());
    	    }
    }

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Points : 38
    Points
    38
    Par défaut
    c'est à dire que je supprime tous ce que j'ai fait et je le refait en shell?

  7. #7
    Membre habitué Avatar de wiss85
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 90
    Points : 184
    Points
    184
    Par défaut
    mais non avec java

    et voici la solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
    public static void main(String[] args){
    	ExtraireEtat E=new ExtraireEtat();
     
     
    File folder = new File("c:/"); //le dossier  qui contient les fichiers 
    File[] listOfFiles = folder.listFiles(); // récupérer la liste des fichiers 
    for (int i = 0; i < listOfFiles.length; i++) {  //parcourir la liste des fichiers 
               if (listOfFiles[i].isFile()) { // vérifier s un fichier ou répertoire 
    	       E.readFile(listOfFiles[i].getName());
    	    }
    }
     
    }

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Bonjour,

    Une solution serait de saisir (ou récupérer) les noms des fichiers .dump à traiter et les enregistrer dans une ArrayList (par exemple arrL) et de faire quelque chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // dans la méthode main(...
             for(int i=0;i<arrL.size();i++)
             {
               String fichierIn = arrL.get(i);
               E.readFile(fichierIn);
             }
    // et remplacer String fichier par String fichierIn pour la lecture et
    String nom="ergoHN1994014-4-LaitB-3-1e";
    // par
    String nom = fichierIn.replaceAll("dump" "");
    // pour l'écriture
    Cordialement,

    Dan

  9. #9
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Points : 38
    Points
    38
    Par défaut
    avec la solution de Wiss 85 ici il m'a genérer une exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Exception in thread "main" java.lang.NullPointerException
    	at ExtraireEtat.main(ExtraireEtat.java:115)
    s'il vous plait comment fait la declaration de " arrL" ?

  10. #10
    Membre habitué Avatar de wiss85
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 90
    Points : 184
    Points
    184
    Par défaut
    le code marche correctement ,

    j'ai essayer le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    import java.io.File;
     
    public class Test {
     
    	public static void main(String[] args) {
     
    		File folder = new File("c:/");
    	        File[] listOfFiles = folder.listFiles();
     
    	    for (int i = 0; i < listOfFiles.length; i++) {
    	      if (listOfFiles[i].isFile()) {
    	        System.out.println("fichier  " + listOfFiles[i].getName());
    	      } else if (listOfFiles[i].isDirectory()) {
    	        System.out.println("repertoire " + listOfFiles[i].getName());
    	      }
    	    }
    	}
    }
    pour ArrayList voici un exemple de déclaration :
    ArrayList<String> list = new ArrayList<String>();

  11. #11
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Points : 38
    Points
    38
    Par défaut
    voilà c'est ce j'ai ecrit comme code je ne sais pas pourquoi j'ai cette exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    public static void main(String[] args){
     
    	ExtraireEtat E=new ExtraireEtat();
     
    	File folder = new File("c:/home/afifa/workspace/src/dump"); //le dossier  qui contient les fichiers 
    	File[] listOfFiles = folder.listFiles(); // récupérer la liste des fichiers 
     
    	for (int i = 0; i < listOfFiles.length; i++) {  //parcourir la liste des fichiers 
    	           if (listOfFiles[i].isFile()) { // vérifier s un fichier ou répertoire 
    		       E.readFile(listOfFiles[i].getName());
     
     
    		 	      } else if (listOfFiles[i].isDirectory()) {
    		 	        E.readFile("repertoire " + listOfFiles[i].getName());
    		 	      }
    		 	    }
    		 	}

  12. #12
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    C'est quoi la ligne 115 ?

    peut-être en remplacant le code de wiss85 qui remplace ma solution ArrayList

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    .............
               for (int i = 0; i < listOfFiles.length; i++) {  //parcourir la liste des fichiers 
               if (listOfFiles[i].isFile()) { // vérifier s un fichier ou répertoire 
    	       E.readFile(listOfFiles[i].getName());
    	    }
    ..............
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ............
               for (int i = 0; i < listOfFiles.length; i++) {  //parcourir la liste des fichiers 
               if (listOfFiles[i].isFile()) { // vérifier s un fichier ou répertoire 
               String fichierIn(listOfFiles[i].getName());
               E.readFile(fichierIn);
    	    }
    ...............
    Et faire les modifs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // remplacer String fichier par String fichierIn pour la lecture et
    String nom="ergoHN1994014-4-LaitB-3-1e";
    // par
    String nom = fichierIn.replaceAll("dump" "");
    // pour l'écriture
    Tu n'as pas trouvé quelle est la ligne 115 ?

    Dan

  13. #13
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Points : 38
    Points
    38
    Par défaut
    vous etes sur que replaceAll ca c'ecrit come ca :
    String nom = fichierIn.replaceAll("dump" "");
    ?

  14. #14
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Désolé il manque la virgule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String nom = fichierIn.replaceAll("dump" , "");

  15. #15
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Points : 38
    Points
    38
    Par défaut
    Il me génère toujours une exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Exception in thread "main" java.lang.NullPointerException
    	at ExtraireEtat.main(ExtraireEtat.java:125)
    la ligne 125 c'est dans la boucle for
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    public static void main(String[] args){
    	ExtraireEtat E=new ExtraireEtat();
    	File folder = new File("c:/home/afifa/workspace/Etat/src/dump");
        File[] listOfFiles = folder.listFiles();
     
     
    	for (int i = 0; i < listOfFiles.length; i++) {  // ici il me montre exception
     
           if (listOfFiles[i].isFile()) { // vérifier s un fichier ou répertoire
     
            }
            String fichierIn=(listOfFiles[i].getName());
     
            E.readFile(fichierIn);
     
     
     
     
    }}
    }

  16. #16
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Re bonjour,

    Peux-tu tester ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public static void main(String[] args)
          {      
             ExtraireEtat E=new ExtraireEtat();
             File folder = new File("c:/home/afifa/workspace/src/dump"); //le dossier qui contient les fichiers
             File[] listOfFiles = folder.listFiles(); // récupérer la liste des fichiers
             for (int i = 0; i < listOfFiles.length; i++)
             {
             //parcourir la liste des fichiers en vérifiant que c'est un fichier
                if (listOfFiles[i].isFile()) 
                {
                   String fichierIn = listOfFiles[i].getName();
                   if( (fichierIn.startsWith("ergoHN")) && (fichierIn.endssWith(".dump")) ) 
                      E.readFile(fichierIn);
                }
             }
          }
    Et toujours avec les modifs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // remplacer String fichier par String fichierIn pour la lecture et
    String nom="ergoHN1994014-4-LaitB-3-1e";
    // par
    String nom = fichierIn.replaceAll("dump" , ""); // pour l'écriture
    //Sachant que tu ajoutes le .txt ici: 
    	        write(comp1+" "+comp2+" "+comp3+" ", "c:/home/afifa/workspace/src/dump/"+nom+".txt"); 
    //mais en ajoutant le chemin complet et en supposant que ton write est correct...
    Dan

  17. #17
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Points : 38
    Points
    38
    Par défaut
    Bonjour,

    j'ai essayé votre solution (avec les mêmes détails) mais il y a toujours cette exception dans la boucle for !
    peut être qu'il faut un try pour cette exception mais quelle type d'erreur d'exception ?

    aidez-moi svp, merci d'avance.

  18. #18
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Bonjour,

    L'exception obtenue signifie que le chemin "c:/home/afifa/workspace/Etat/src/dump" n'existe pas.

    Quel est le dossier dans lequel se trouvent les fichiers .dump ?

  19. #19
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Points : 38
    Points
    38
    Par défaut
    il est dans le repertoire src que je l'ai appelé "dump" ( contient les fichiers.dump)

  20. #20
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Points : 38
    Points
    38
    Par défaut
    même j'ai essaiyé de mettre un try / catch juste avant la boucle for , il m' a affiché dans la console
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.lang.NullPointerException

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [GD] uploader un fichier et même temps le redimensionner
    Par Henry9 dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 25/02/2007, 23h29
  2. Voir deux fichier en même temps ?
    Par dr23fr dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 07/09/2006, 11h11
  3. [VB6] exécuter des fichiers gif
    Par motrin dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 03/08/2006, 12h59
  4. [DOS] exécuter 2 fichiers en même temps
    Par toninio dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 04/04/2006, 16h58
  5. exécution des fichiers index.php
    Par berry dans le forum Apache
    Réponses: 4
    Dernier message: 20/12/2004, 20h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo