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 et Tableaux


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 26
    Points : 13
    Points
    13
    Par défaut Fichier et Tableaux
    bonjour à tous, voila j'ai un petit sujet pour lequel je dois lire un fichier, ensuite je dois récuperer ce qu'il m'affiche dans un tableau.j'ai commencer par la lecture du fichier ligne par ligne et maintenant je suis perdu car j'arrive pas du tout à récupérer soit la premiere lettre de la premiere ligne ou le mot entier, tout ceci je dois me debrouiller avec des arraylist.
    voici 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
    49
    50
    51
    52
    53
    package dossier;
    //importation des classes nécessaires pour l'éxécution de mon programme
    import java.io.*;
    import javax.swing.*;
    import java.util.*;
     
     
    public class LectureFichier{
    /**
     * @param écrit un fichier en dur sur le disque
     */
        public void choixFichier(){
     
        String chaine="";
     
     
    File fichier;
    	try{
             //permet de créer l'objet qui affiche un message dans un boite de dialogue
             javax.swing.JOptionPane.showMessageDialog(null,"Merci de choisir le fichier \"bonjour.txt\" sur votre disque");
     
             //File est une classe contenu dans java, pour l'appeler il faut importer java.io.*;
             //comme fait plus haut. File permet d'interagir avec des fichiers.
             //JFileChooser va permettre d'ouvrir une boite de dialog pour chercher un fichier
                    JFileChooser fc = new JFileChooser();
                    int retour=fc.showOpenDialog(null);
             //la structure de controle if permet de dire que si la méthode
             //APPROVE_OPTION de la classe JFileChooser est vérifiée (si l'utilisateur
             //clique sur "ok" dans la boite de dialogue) alors ,l'utilisateur peut rechercher
             //le fichier dans l'arborescence du Systeme de Fichier
                    if(retour==JFileChooser.APPROVE_OPTION){
                       fichier=fc.getSelectedFile();
                        // chemin absolu du fichier choisi
                       fc.getSelectedFile().getAbsolutePath();
                       FileReader fr = new FileReader(fichier);
                       BufferedReader br = new BufferedReader(fr);
    		   String ligne;
                       System.out.println("Le fichier \n"+fichier+" \u2192");
                       //parcours le fichier tant que il existe au moins une ligne après la ligne lue
                        while ((ligne=br.readLine())!=null){
    			System.out.println(ligne);
    			chaine+=ligne+"\n";
                        }
                //ferme le BufferReader
    		br.close();
                    }
            }
            //retourne s'il y a un probleme dans le bloc try l'exception
            catch(Exception e){
                System.out.println("Probleme lors de la lecture");
            }
        }
    }

    voila desolé si j'ai pas été assez clair, mais je suis un vrai debutant ( à si au fait, je veux pouvoir utiliser le tableau dans une autre classe.).
    merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Points : 422
    Points
    422
    Par défaut
    Ton code à l'air pas mal.
    Tu arrives à récupérer l'intérieur de ton fichier texte non ?

    Je te propose 2 petites modifications :
    1.
    Au lieu de :
    String chaine = "";
    et de
    chaine+=ligne+"\n";

    Utilise plutôt :
    StringBuilder chaine = new StringBuilder();
    et
    chaine.append(ligne);
    chaine.append("\n");


    Voir ICI.

    2.
    Il y a une ligne que tu ne stock pas et que tu n'utilises pas => inutile
    => fc.getSelectedFile().getAbsolutePath();

    Pour ce qui est de ton tableau, il faut nous expliquer ce que tu entends pas tableau. (Tableau de lettres, de mots, de lignes, ... ??)

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 26
    Points : 13
    Points
    13
    Par défaut salut
    merci pour ta reponse , j'ai bossé pas mal dessus hier (ca m'enerve car ca doit etre un sujet super simple pour d'autre, en tout cas pour ma part je galere vraiment lol)
    Le sujet exact est: prendre un fichier1, prendre un fichier dico(qui dit qu'il faut remplacer le e par o, le u par t....) et faire ces remplacements et écrire tout ca dans un fichier2.
    voila ,j'espere que c'est plus clair comme ca.
    en tout cas pour l'instant j'ai rajouté la lecture caractere par caractere du fichier1 ( en esperant pouvoir dire à mon programme des que tu trouve un separateur(ce qui separe la lettre à remplacer de celle qui la remplace),prend la lettre avant le separateur remplace la par la lettre juste apres le séparateur..)
    C'est une bonne methode?
    N.B: je ne peux pas utiliser StringBuilder on l'a pas encore vu...
    D'ailleurs j'utilise un ArrayList je sais meme pas si j'y ai droit
    donc voici mon code :

    /**
    * classe de lecture d'un fichier
    * @author SAFFROY Alexandre
    * @exception pour les entrées
    * Créée le 14/05/2010
    */
    package dossier;
    //importation des classes nécessaires pour l'éxécution de mon programme
    import java.io.*;
    import javax.swing.*;
    import java.util.*;


    public class LectureFichier{
    /**
    * @param écrit un fichier en dur sur le disque
    */
    //int nbre=50;
    public void testFichier(){
    int intOctetLu;
    String chaine="";
    //char charac[] = new char[nbre];
    ArrayList al = new ArrayList();
    /*lecture du fichier texte

    //les blocs try et catch permettent la gestion des erreurs
    //car lors de la manipulation des fichiers il peut survenir plusieurs problèmes
    //qui pourraient bloquer l'utilisateur, grâce Ã* cela on peut redonner la main Ã* l'utilisateur.*/
    File fichier;

    //permet de créer l'objet qui affiche un message dans un boite de dialogue
    javax.swing.JOptionPane.showMessageDialog(null,"Merci de choisir le fichier \"bonjour.txt\" sur votre disque");

    //File est une classe contenu dans java, pour l'appeler il faut importer java.io.*;
    //comme fait plus haut. File permet d'interagir avec des fichiers.
    //JFileChooser va permettre d'ouvrir une boite de dialog pour chercher un fichier
    JFileChooser fc = new JFileChooser();
    int retour=fc.showOpenDialog(null);
    //la structure de controle if permet de dire que si la méthode
    //APPROVE_OPTION de la classe JFileChooser est vérifiée (si l'utilisateur
    //clique sur "ok" dans la boite de dialogue) alors ,l'utilisateur peut rechercher
    //le fichier dans l'arborescence du Systeme de Fichier
    try{
    if(retour==JFileChooser.APPROVE_OPTION){
    fichier=fc.getSelectedFile();
    // chemin absolu du fichier choisi
    fc.getSelectedFile().getAbsolutePath();
    FileReader fr = new FileReader(fichier);
    BufferedReader br = new BufferedReader(fr);
    System.out.println("Le fichier "+fichier+" \u2192");
    int i =0;
    while((intOctetLu = br.read())!=-1){
    char ty=(char) intOctetLu;
    al.add(i, ty);
    i++;
    }

    System.out.println(al);
    //ferme le BufferReader
    br.close();
    }
    }
    //retourne s'il y a un probleme dans le bloc try l'exception
    catch(Exception e){
    System.out.println("Probleme lors de la lecture");
    }
    }
    }


    merci pour votre aide...

Discussions similaires

  1. [WD16] Importation d'un fichier .TXT (tableaux) dans une table
    Par moimoi78 dans le forum WinDev
    Réponses: 4
    Dernier message: 11/04/2011, 18h28
  2. Réponses: 0
    Dernier message: 11/11/2010, 08h30
  3. Fichier et tableaux
    Par tranenengel dans le forum Débuter
    Réponses: 7
    Dernier message: 26/05/2010, 10h03
  4. [Free Pascal] Fichiers et tableaux
    Par Bruno0693 dans le forum Free Pascal
    Réponses: 6
    Dernier message: 15/10/2008, 12h07
  5. Réponses: 4
    Dernier message: 24/11/2007, 09h12

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