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 :

Extraire un sous fichier à partir d'un fichier texte


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut Extraire un sous fichier à partir d'un fichier texte
    Bonjour tout le monde,

    J'ai un fichier texte et je voudrais extraire seulement 15% des données afin d'exécuter qulques traitements sur ces derniers. La taille de mon fichier est assez importante. Peu importe pour l'extarction à partir de debut ou au milieu du fichier.
    je pense à commencer par compter le nombre de ligne de mon fichier (chaque ligne contient un mot). NB
    puis je calcule le pourcentage P= (NB*15/100)

    Porriez vous m'aider à trouver la fonction adéquate à fin de commencer l'extraction des donnée (ligne par ligne ) tout en réspéctant la taille P.
    Si c'est faidable en java.
    Merci.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Si le but est de ne pas charger tout le fichier en mémoire, il faut
    1. Lire le fichier ligne par ligne une première fois pour compter les lignes, puis prendre les 15% au début (c'est le plus simple)
      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
      	public void extrairePourcentage(Path in, Path out, int percent) throws IOException {
       
      		int total=0;
      		try(BufferedReader reader = Files.newBufferedReader(in) ) {
      			for(String line=reader.readLine(); line!=null; line=reader.readLine()) {
      				total++;
      			}
      		}
      		int nb=(int)(total*percent/100F);
      		try(BufferedWriter writer = Files.newBufferedWriter(out);
      			BufferedReader reader = Files.newBufferedReader(in); ) {
      			for(String line=reader.readLine(); line!=null && nb>0; line=reader.readLine()) {
      				writer.write(line);
      				writer.newLine();
      				nb--;
      			}
      		}
       
      	}
    2. Sinon, on peut tout charger en mémoire et ne prendre que 15% (ici, on peut prendre plus facilement à partir de n'importe quelle ligne (telle qu'il y ait au moins 15% des lignes après)
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      public void extrairePourcentage(Path in, Path out, int percent) throws IOException {
      		List<String> all = Files.readAllLines(in);
      		int nb=(int)(all.size()*percent/100F);
      		try(BufferedWriter writer = Files.newBufferedWriter(out)) {
      			for(String line : all.subList(0, nb) ) { // 0 c'est pour commencer au début, mais cette valeur peut être comprise entre 0 et (all.size()-nb)
      				writer.write(line);
      				writer.newLine();
      			}
      		}
      	}
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut
    Merci beaucoup ,

    J'ai utilisé la première , c'est plus rapide puisque j'ai besoin de charger seulement les 15 % du texte et non pas tout le fichier.

    Par la suite du traitement, je vais parcourir le fichier resultat "out" par Scanner .Si je veux que ma fontion "extrairePourcentage" retourne Scanner . Est-ce je peux convertir mon resultat de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static void extrairePourcentage(Path in, Path out, int percent) throws IOException { }
    to:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     public static Scanner extrairePourcentage(Path in, Path out, int percent) throws IOException {}
    Au niveau de la fonction :
    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 Scanner extrairePourcentage(Path in, Path out, int percent) throws IOException {
     
    		int total=0;
    		try(BufferedReader reader = Files.newBufferedReader(in) ) {
    			for(String line=reader.readLine(); line!=null; line=reader.readLine()) {
    				total++;
    			}
    		}
    		int nb=(int)(total*percent/100F);
    		try(BufferedWriter writer = Files.newBufferedWriter(out);
    			BufferedReader reader = Files.newBufferedReader(in); ) {
    			for(String line=reader.readLine(); line!=null && nb>0; line=reader.readLine()) {
    				writer.write(line);
    				writer.newLine();
    				nb--;
    			}
     
    		}
                Scanner sc = new Scanner((out));  
                return sc;
    	}
    et au niveau main , je fais l'appel de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Scanner sc = extrairePourcentage(in, out, 15);
    Est ce que c'est faisable ?

    Merci

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Oui, c'est faisable (pourquoi ne pas essayer toi-même). N'oublie pas de fermer le Scanner quand tu n'en sers plus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    try(Scanner scanner = extrairePourcentage(in, out, 15)) {
    //traitement ici
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut
    Rebonjour

    Oui Merci, c'est fait , sauf que mon fichier est un peu lourd , il contient 9000 lignes d'ou le temps d'exécution :
    Nom : 1.PNG
Affichages : 239
Taille : 1,7 Ko
    Je voudrais savoir ou je ferme le scanner ? peut-être que ça va raccourcir le temps d'exécution

    Merci

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par cheyma Voir le message
    Je voudrais savoir ou je ferme le scanner ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    try(Scanner scanner = extrairePourcentage(in, out, 15)) {
    //traitement ici
    }
    Cette structure dite "try-with-resource" ferme juste automatiquement le Scanner à la fin du bloc.

    Citation Envoyé par cheyma Voir le message
    peut-être que ça va raccourcir le temps d'exécution
    Non, le fermer ne changera rien au temps d'exécution. C'est juste pour libérer proprement le fichier.

    Montre-moi ton code de traitement. Le temps d'exécution que tu donnes, c'est pour le traitement des 15%, ou le traitement total ?

    Essaye par ailleurs de remplacer le comptage des lignes par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int total=0;
    try(LineNumberReader reader = new LineNumberReader(Files.newBufferedReader(in)) ) {
        reader.skip(Files.size(in));
        total=reader.getLineNumber();
    }
    Ça devrait déjà permettre de gagner sur le comptage.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut
    Bonsoir,

    Merci , c'est le temps de traitement total du programme, parceque je manipule des fichiers volumineux.

    En fait, maintenant je voudrais extraire les 15% mais d'une manière aléatoire, par exemple 5% à partir du début du fichier , 5% au milieu et 5% de la fin
    à votre avis est-il faisable ?

    personnelement je pense à faire le même traitement qu'avec les 15% mais je le refait avec 5% puis je saute quelques lignes puis je refait le même travail 5% . D'ou je realise l'extraction du pourcentage 3 fois (15%=5%+5%+5%)

    Merci pour votre aide

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par cheyma Voir le message
    personnelement je pense à faire le même traitement qu'avec les 15% mais je le refait avec 5% puis je saute quelques lignes puis je refait le même travail 5% . D'ou je realise l'extraction du pourcentage 3 fois (15%=5%+5%+5%)
    Oui, tu peux procéder comme ça, ou avec un test d'appartenance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    int[] intervalles = determinerIntervalles(total); // déterminer 3 intervalles de 5 %
    try(BufferedWriter writer = Files.newBufferedWriter(out);
         BufferedReader reader = Files.newBufferedReader(in); ) {
         int index=0;
         for(String line=reader.readLine(); line!=null && nb>0; line=reader.readLine()) {
             if ( appartient(index, intervalles) ) {
    	      writer.write(line);
    	      writer.newLine();
             }
             index++;
         }
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut
    Bonsoir ,

    Merci pour votre réponse,
    Mais j'ai pas bien compris l'utulité des fonctions determinerIntervalles(total) et appartient(index, intervalles)
    Est ce que tableau intervalles va contenir 5% 5% 5% ?

    Merci

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ce sont des méthodes que tu dois écrire. La méthode determinerIntervalles() va créer 3 intervalles puisque c'est ce que tu veux. La méthode appartient va tester si un numéro de ligne appartient à l'un des intervalles. Par exemple, appartient pourra s'écrire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	public static boolean appartient(int index, int[]...intervalles) {
    		for(int[] intervalle : intervalles) {
    			if ( intervalle[0]<=index && index<intervalle[1] ) {
    				return true;
    			}
    		}
    		return false;
    	}
    Et derminerIntervalles comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public static int[][] determinerIntervalles(int total) {
    		int[][] intervalles = new int[3][2];
    		int p5=total/20;
    		intervalles[0] = new int[]{ 0, p5}; // intervalle de 0 à 5%
    		intervalles[1] = new int[]{ p5*2, p5*2+p5}; // intervalle de 10% à 15%
    		intervalles[2] = new int[]{ p5*7, p5*7+p5}; // intervalle de 35% à 40%
    		return intervalles;
    	}
    tu peux déterminer les intervalles en dur comme j'ai fait, ou les déterminer de maniètre aléatoire, en déterminant les coefficients de manière aléatoire (plus complexe, car il faudra tester qu'ils ne se chevauchent pas).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut
    Ok merci , je vais les tester

  12. #12
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut
    Bonjour

    Mon code intial (extraire 15% du fichier initial) était :

    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 Scanner extrairePourcentage(Path in, Path out, int percent) throws IOException {
     
    		int total=0;
    		try(BufferedReader reader = Files.newBufferedReader(in) ) {
    			for(String line=reader.readLine(); line!=null; line=reader.readLine()) {
    				total++;
    			}
    		}
    		int nb=(int)(total*percent/100F);
    		try(BufferedWriter writer = Files.newBufferedWriter(out);
    			BufferedReader reader = Files.newBufferedReader(in); ) {
    			for(String line=reader.readLine(); line!=null && nb>0; line=reader.readLine()) {
    				writer.write(line);
    				writer.newLine();
    				nb--;
    			}
     
    		}
                Scanner sc = new Scanner((out));  
                return sc;
    	}
    et ça fonctionne correctement
    Sauf que après les changements que vous m'avez proposer , j'ai essayer de faire ça:

    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
     public static boolean appartient(int index, int[][]intervalles) {
    		for(int[] intervalle : intervalles) {
    			if ( intervalle[0]<=index && index<intervalle[1] ) {
    				return true;
    			}
    		}
    		return false;
    	} 
     
        public static int[][] determinerIntervalles(int total) {
    		int[][] intervalles = new int[3][2];
    		int p5=total/20;
    		intervalles[0] = new int[]{ 0, p5}; // intervalle de 0 à 5%
    		intervalles[1] = new int[]{ p5*10, p5*10+p5}; // intervalle de 50% à 55%
    		intervalles[2] = new int[]{ p5*18, p5*18+p5}; // intervalle de 90% à 95%
    		return intervalles;
    	}
     
     
        public static Scanner extrairePourcentage(Path in, Path out) throws IOException {
            int total=0;
    		try(BufferedReader reader = Files.newBufferedReader(in) ) {
    			for(String line=reader.readLine(); line!=null; line=reader.readLine()) {
    				total++;
    			}
    		}
     
        int[][]intervalles=determinerIntervalles(total); //determine 3 intervalles de 5%
        try(BufferedWriter writer = Files.newBufferedWriter(out);
                BufferedReader reader = Files.newBufferedReader(in); ) {
            int index=0;
            for(String line=reader.readLine(); line!=null; line=reader.readLine()) {
                if (appartient(index, intervalles)){
                    writer.write(line);
                    writer.newLine();
                }
                index++;
            }
        }
     
        Scanner sc = new Scanner((out));  
                return sc;
        }
    Malheureusement que j'ai rencontré des problèmes au niveau de la compilation
    Nom : erreur.PNG
Affichages : 228
Taille : 2,5 Ko

    ligne 196
    Nom : e1.PNG
Affichages : 226
Taille : 9,4 Ko
    ligne 243
    Nom : e2.PNG
Affichages : 215
Taille : 4,0 Ko

    Merci

  13. #13
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tu me montres une exception donc déjà ce n'est pas un problème de compilation mais d'exécution. Ensuite, ce n'est pas avec une stacktrace partielle et un code partiel que je vais pouvoir te dire grand chose...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  14. #14
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut
    Rebonjour Monsieur joel.drigo

    Veuillez trouver ci-après la classe que je travail la dessus. Je sais que ce n'est pas une classe optimale, mais pour le moment j'essaye d'exécuter mon traitement correctement , puis je vais optimiser le code ainsi que réduire ses lignes.
    Je vous remercie pour votre réponse et votre aide.

    phaseTest.java

  15. #15
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Et la stacktrace de l'exception ? Ce serait préférable (ça m'éviterait de tester ton programme dans des conditions qui ne sont pas les mêmes que toi, d'autant plus que je n'ai pas ton fichier de test).

    (Et moi, c'est Monsieur normalement, mais fi de civilités, tu peux m'appeler simplement Joël )
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  16. #16
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut
    Rebonjour Monsieur Joël,

    Excusez-moi, veuillez trouver c-après les fichiers nécessaires (la classe, stacktrace de l'exception et le fichier de test)

    Cordialement


    Corpus_Essai2.txt stacktrace de l'exception.txt phaseTest.java

  17. #17
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    La stacktrace indique que l'encodage du fichier est incompatible avec l'encodage par défaut utilisé pour la lecture du fichier. Tu as produit ce fichier (?) avec quel encodage ?

    Le second paramètre de newBufferedReader() permet d'indiquer l'encodage du fichier à lire : il te suffit de mettre le bon.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  18. #18
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut
    C'est exactement ça l'obstacle qui empêche le programme de s'exécuter

    Merci infiniment Monsieur Joel
    C'est

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Implémentation des tables sous Access à partir d'un fichier EXCEL
    Par SOFIC dans le forum VBA Access
    Réponses: 1
    Dernier message: 14/06/2015, 08h10
  2. Itérer dans un sous job à partir d'un fichier
    Par n.roussaly dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 03/05/2011, 17h03
  3. Réponses: 1
    Dernier message: 24/01/2008, 13h19
  4. Réponses: 4
    Dernier message: 31/07/2006, 09h31
  5. Générer plusieurs fichiers à partir d'un fichier excel
    Par yas2006 dans le forum Documents
    Réponses: 3
    Dernier message: 02/06/2006, 17h54

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