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 :

[Fichier] Ajout des lignes de doc dans arraylist


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2004
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 34
    Points : 36
    Points
    36
    Par défaut [Fichier] Ajout des lignes de doc dans arraylist
    bonjour
    je veux lire un document txt et ajouter des lignes dans un arraylist
    ces lignet ce trouve entre deux lignes bien pricis (intervalle)
    ce intervalle ce repete donc je veux ajouter les arraylist qui contient ces intervalle dans un vector voila 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
    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
     
    public Vector nom_partage() throws RemoteException,IOException{
     
         String ligne;
         File f=new File("C:\\adel.txt");
         BufferedReader entree=new BufferedReader (new FileReader("C:\\adel.txt"));
         //PrintWriter sortie=new PrintWriter(new FileWriter("C:\\adel2.txt",true));
         boolean start = false;
         boolean finish = false;
         Vector vec =new Vector();
         ArrayList nom=new ArrayList();
         int i=0;
        while((ligne=entree.readLine() ) != null)
           {
               if(ligne.equals("#nom partage"))
               {
                  start=true;
               }
               if(ligne.equals("#fin de partage"))
               {
                 finish=true;
               }
               if(!ligne.equals("#fin de partage"))
               {
                 finish=false;
               }
               if(start)
               {
                 System.out.println(ligne);
                 nom.add(i,ligne);
                 i++;
               }
               if (finish)
               {
                 vec.addElement(nom);
                 nom.clear()  ;
                 start=false;
               }
     
                 continue;
     
     
           }
     
    entree.close() ;
    return vec;
     
    }

  2. #2
    Membre régulier Avatar de calypso
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    quel est le probleme? ca ne fonctionne pas?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2004
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 34
    Points : 36
    Points
    36
    Par défaut re
    Citation Envoyé par julie77
    quel est le probleme? ca ne fonctionne pas?
    voila le fichier
    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
     
    #nom de partage
    [esr]
    comment = zrz
    path = C:\FOUND.003
    public=yes
    writable = no
    writ list = zrzr
    create mask = 777
    directory mask = 777
    #fin de partage
    #nom de partage
    [ami]
    comment = tttt
    path = C:\FOUND.003
    public=yes
    writable = no
    writ list = zhhh
    create mask = 777
    directory mask = 777
    #fin de partage
    je veux ajouter chaque partie qui se trouve entre #nom de partage et #fin de partage dans un arraylist puis j'ajoute chaque champ(arraylist) dans un vector
    merci

  4. #4
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 68
    Points : 72
    Points
    72
    Par défaut
    Autant que je puisse comprendre les choses, au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
               if (finish)
               {
                 vec.addElement(nom);
                 nom.clear()  ;
                 start=false;
               }
    il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (finish
    {
     vec.addElement(nom);
     nom = new ArrayList();
     start = false;
    }
    En effet, dans le premier cas tu mémorises le nom dans le vecteur, puis... tu effaces le contenu de ce nom ! Dans la solution que je te propose, tu crées un nouveau nom. Celui qui est mémorisé reste donc entier.

  5. #5
    Membre régulier Avatar de calypso
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    le pb est que tu stocke une reference sur l arraylist et que tu la vide apres

    tu peux faire:

    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
     
    public Vector nom_partage() throws Exception{
     
         String ligne;
         File f=new File("C://adel.txt");
         BufferedReader entree=new BufferedReader (new FileReader("C://adel.txt"));
         //PrintWriter sortie=new PrintWriter(new FileWriter("C:\\adel2.txt",true));
         boolean start = false;
         boolean finish = false;
         Vector vec =new Vector();
         ArrayList nom=new ArrayList();
         int i=0;
     
        while((ligne=entree.readLine() ) != null)
           {
               //System.out.println("read "+ligne);
               if(ligne.equals("#nom de partage"))
               {
                  start=true;
                  continue;
               }
               if(ligne.equals("#fin de partage"))
               {
                 finish=true;
     
              }
               else
               {
                 finish=false;
               }
     
     
               if(start && !finish)
               {
                 // si c pas fini
                 nom.add(ligne);
                 i++;
               }
               if (finish) 
     
               {
    // stocke une copie
                    vec.addElement(new ArrayList(nom));
     
                 nom.clear()  ;
                 start=false;
               }
     
           }
     
    entree.close() ;
     
    return vec;
     
    }
    en esperant que ca t aide

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2004
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 34
    Points : 36
    Points
    36
    Par défaut re
    merci
    mais avec ce code il me genere cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.lang.OutOfMemoryError
    est ce que le probleme en memoire c.a.d ram ou memoire virtuelle

  7. #7
    Membre régulier Avatar de calypso
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    moi il n en fait pas, l erreur doit tre ailleurs, dans le code

    peut etre a tu une methode qui s appelle recursivement et qui surcharge la pile d execution...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Février 2004
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 34
    Points : 36
    Points
    36
    Par défaut re
    Citation Envoyé par julie77
    moi il n en fait pas, l erreur doit tre ailleurs, dans le code

    peut etre a tu une methode qui s appelle recursivement et qui surcharge la pile d execution...
    voila le code ou je utilise mon vector
    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
     
        Vector vec=null;
        Iterator iterateur=null;
        try
        {
          vec=client.in.nom_partage();
          System.out.println("tawa honi we ghadi");
          iterateur=vec.iterator();
          System.out.println("ani honi");
          while(iterateur.hasNext())
        {
            System.out.println("ghhhhhhhh");
      ArrayList l=(ArrayList) vec.lastElement();
     
      jCpartage.addItem(l.get(0));
    }
     
        }
        catch (Exception ev)
        {
          System.out.println(ev);
        }

  9. #9
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 68
    Points : 72
    Points
    72
    Par défaut
    J'ai quelque mal à comprendre ce que tu veux faire, mais tel que la boucle while ne se termine jamais. Il faudrait que tu utilises quelque part dans cette boucle iterateur.next(), de façon à faire progresser le hasNext().

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 66
    Points : 80
    Points
    80
    Par défaut
    J'ai développé une classe qui permet de lire et écrire dans les fichier de type .ini.
    Il n'est pas fini(gestion des commentaires dans les fichier pas encore bien implémenté) et peu documenté mais tu peux l'avoir ici:
    http://membres.lycos.fr/nolagrulez/java/Gestionnaire_Ini.rar


    Si tu veux "canibaliser" mon code pour faire ce que tu veux regarde la méthode charger de la classe FichierIni:
    La méthode charger(File) lis le fichier et créé une liste (Vector) d'objets de type Titre (ca correspond aux [esr], [ami])
    chaque titre contenant lui même une liste (Vector) de Clé (ca correspond aux mment = zrz, path = C:\FOUND.003, public=yes,...)

    Si tu veux utiliser ce que j'ai fait je te conseille d'aller voir la documentation surtout la classe FichierIni, la classe principale étant FichierIni.java,

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

Discussions similaires

  1. perl ajouter des lignes d'écriture dans un fichier
    Par karaudrey88 dans le forum Langage
    Réponses: 8
    Dernier message: 21/10/2013, 15h39
  2. ajouter des lignes de code dans un fichier texte
    Par oodbae_adriano dans le forum MATLAB
    Réponses: 4
    Dernier message: 06/12/2010, 10h39
  3. ajouter des lignes et colonnes dans un tableau
    Par sky88 dans le forum Débuter
    Réponses: 1
    Dernier message: 03/12/2008, 18h04
  4. Réponses: 2
    Dernier message: 07/08/2006, 16h43
  5. [Fichier] Ajouter des lignes...
    Par Life Hunter dans le forum Langage
    Réponses: 4
    Dernier message: 26/11/2005, 18h28

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