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

Java Discussion :

problème pour segmenter un code en plusieurs class


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Par défaut problème pour segmenter un code en plusieurs class
    Bonjour à tous,
    Je suis débutante en Java et en reconversion professionnelle. Je consacre donc la majeur partie de mon temps pour le moment à la formation en java.
    Tout d'abord merci à la communauté car grâce à ce forum j'ai trouvée énormément d'aide.

    Voila le problème que je rencontre actuellement sur un exercice :

    Le but de mon programme "exercice" :
    ouvrir un fichier. txt qui comporte une liste de mot ( environ 200).
    calculer le nombre d’occurrence de chaque mot.
    créer un fichier out.txt qui indique les mots de la liste avec leurs nombres d’occurrences.


    Le programme est fini. Pas de problème à l’exécution cependant ...

    mon programme est une suite d'instruction. La commande pour l'exercice est d'avoir différentes class
    par exemple :

    class lecture
    class calcule
    class txtout

    cela fait un bon moment maintenant que je me prend la tête à essayer de résoudre mon souci , mais je crois que j'ai besoin d'explication.

    voici mon programme :

    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
    94
    95
    96
    97
    98
    99
     
     
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.TreeMap;
     
     
    public class principale {
     
     
        public static void main(String[] args) throws IOException {
     
     
            File txt = new File("bleme.txt");
            List<String> liste = new ArrayList<String>();
     
     
    //CLASS LECTURE + Ecrit txt dans une liste
     
     
            if (txt != null) {
     
     
                try {
                    BufferedReader br = new BufferedReader(new FileReader(txt));
                    String Ligne = "";
     
     
                    while (Ligne != null) {
                        Ligne = br.readLine();
                        liste.add(Ligne);
                    }
                    if (Ligne == null) {
                        liste.remove(Ligne);
                    }
                    br.close();
     
     
                } catch (IOException e) {
                    System.err.println("Unable to read the file.");
                }
     
     
            }
     
     
    //Liste en map + calcule occurence 
     
     
            Map<String, Integer> map = new HashMap<String, Integer>();
     
     
            for (String w : liste) {
                Integer i = map.get(w);
                if (i == null) {
                    map.put(w, 1);
                } else {
                    map.put(w, i + 1);
                }
            }
     
     
    //    map en treemap + trie ordre naturelle    
            Map<String, Integer> newmap = new TreeMap<String, Integer>(map);
     
     
    //Treemap en txt sortie
     
     
            File txt2 = new File("lafin.txt");
     
     
            BufferedWriter ecrireout = null;
            ecrireout = new BufferedWriter(new FileWriter(txt2));
            for (Entry<String, Integer> entry : newmap.entrySet()) {
                String key = entry.getKey();
                Integer value = entry.getValue();
                ecrireout.write(key + " = " + value + System.getProperty("line.separator"));
            }
            System.out.println("File location: " + txt2.getAbsolutePath());
     
     
            ecrireout.flush();
            ecrireout.close();
     
     
        }
     
     
    }

    Quelqu'un pourrait il me dire comment je procède pour segmenter ce code en plusieurs class et appeler ses class dans le Main ?

  2. #2
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    Citation Envoyé par luniza Voir le message

    voici mon programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                    String Ligne = "";
     
     
                    while (Ligne != null) {
                        Ligne = br.readLine();
                        liste.add(Ligne);
                    }
                    if (Ligne == null) {
                        liste.remove(Ligne);
                    }
    Sans répondre à ta question: voilà qui est zarbi!

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Par défaut
    plutot bizar oui , mais j'ai remarquée que si j’enlève le if , mon while prend une ligne vide en début de lecture du fichier

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Cette boucle while a un problème, tu vas avoir une NullPointerException si ton fichier est vide.
    La logique voudrait que tu la remplaces par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String ligne = null;
    while ((ligne = br.readLine()) != null)
    {
       liste.add(ligne);
    }
    Sinon, pour la question initiale je dirais :

    1 classe pour charger le fichier, elle contiendrait ta liste de ligne et une méthode load(String filePath)
    1 classe qui calcule le nombre d'occurrence des mots contenus dans la liste de lignes de ta classe 1 et créera une Map<String, Integer>. La clé de la map sera le mot, la valeur le nombre d'occurrences.
    1 classe pour écrire le résultat dans un fichier de sortie, elle recevra la Map<String, Integer>.

    C'est la 2ème classe qui orchestre toutes les actions.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Par défaut
    Merci du conseils, des que je rentre chez moi j,essai cela et vous tiendrais informés

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Par défaut
    Ok mission accomplie,

    J'ai trouvée la solution

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

Discussions similaires

  1. [Visual Fortran 5.0] Problème pour décomposer un code
    Par laabidimhe dans le forum Fortran
    Réponses: 3
    Dernier message: 17/12/2008, 23h29
  2. quelques problèmes pour exécuter mes codes
    Par djimangue dans le forum Langage
    Réponses: 6
    Dernier message: 18/12/2007, 01h00
  3. Réponses: 1
    Dernier message: 21/05/2007, 11h48
  4. Réponses: 11
    Dernier message: 19/02/2007, 00h20
  5. [MySQL] problème pour calculer âge - code erronné
    Par Christophe93250 dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 12/02/2007, 18h54

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