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] Lire le contenu d'un fichier


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 277
    Par défaut [Fichier] Lire le contenu d'un fichier
    Bonjour à tous,

    J'ai un petit problème sur les fichiers. Lorsque je veux lire le contenu d'un fichier txt (qui contient "bonjour" par exemple), au moment où je fais
    File f = new File();
    le fichier est effacé puis recréé ... Donc je perds tout ce qu'il y a dedans.

    Pourriez vous m'indiquer la marche à suivre svp ?
    Merci d'avance !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Par défaut
    est ce que tu pourrais etre plus précis, car File f = new File() ne concerneaucun fichier physique. Met peut être un bout de code ou bien explique plus préxisemment ton problème

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 277
    Par défaut
    Merci Tiaps pour ta réponse !

    Je me suis créé une classe 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
    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
     
    /*
     * File.java
     *
     * Created on 19 septembre 2004, 15:25
     */
    package Fichier;
     
    import java.io.File;
    import java.io.IOException;
    import java.io.FileReader;
    import java.io.Reader;
    import java.io.FileWriter;
    import java.lang.StringBuffer;
    import java.io.FileNotFoundException;
     
     
    public class Fichier {
     
        private File _Fichier;
        private FileReader Lecteur;
        private FileWriter Redacteur;
     
        /** Creates a new instance of File */
        public Fichier(String name) {
            try{
     
     
     
                _Fichier = new File(name);
     
                if(!_Fichier.exists())
                    _Fichier.createNewFile();
     
                Lecteur = new FileReader(_Fichier);            
                Redacteur = new FileWriter(_Fichier);
     
            }catch(FileNotFoundException e){
                System.out.println(e);
            }catch(IOException e){
                System.out.println(e);
            }catch(SecurityException e){
                System.out.println(e);
            }
        }
     
        public void creer(){
            try{
                _Fichier.createNewFile();
            }catch(IOException e){
                System.out.println(e);
            }catch(SecurityException e){
                System.out.println(e);
            }
        }
     
       public void supprimer(){
           try{
               _Fichier.delete();
           }catch(SecurityException e){
               System.out.println(e);
           }
        }
     
       public String lire(){
           try{
               int car;
               StringBuffer contenu = new StringBuffer();
     
               while((car = Lecteur.read()) != -1){
                   contenu.append((char)car);
               }
               Lecteur.close();
               return contenu.toString();
           }catch(IOException e){
                   System.out.println(e);
                   return null;
           }       
       }
     
       public void ecrire(String s){
           try{
               Redacteur.write(s);
               Redacteur.close();
           }catch(IOException e){
               System.out.println(e);
           }
       }
    }

    et voilà le main pour tester ma classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        public static void main(String[] arg){
            Fichier f = new Fichier("mon_fichier.txt");
            String s = f.lire();
            System.out.println(s);
        }

    avec mon_fichier.txt qui contient "salut".
    Si je fais ceci, le fichier devient vide après Fichier f = new Fichier("mon_fichier.txt");

    et plus précisément, après l'instruction _Fichier = new File(name);
    dans le constructeur Fichier(String).

    Je perds donc "salut" qui s'y trouvait et la String s est vide.
    Voilà mon problème.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Par défaut
    C'est quand tu crée le Redacteur. Quand tu ouvre un fichier en écriture, il s'efface. Il existe un constructeur avec un booleen qui te permet d'écrire à la suite du fichier.
    Essaie simplement comme ca.

    Si ta classe ne marche pas bien ensuite, il va peut être falloir que tu crée un système de lecture écriture exclusif : soit tu es en mode lecture, soit tu es en mode écriture. (je suis pas sur que si tu écris par l'intermediaire du redacteur, le lecteur puisse lire ce qui a été écrit. De plus, je ne suis pas sur qu ca fonctionne tous court mais essaie quand même)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 277
    Par défaut
    Effectivement, si je ne crée pas d'instance de FileWriter, le fichier ne s'efface pas.
    Je n'ai pas trouvé de constructeur de FileWriter qui permette d'écrire à la suite du fichier. J'ai uniquement celui-ci :
    FilterWriter

    protected FilterWriter(Writer out)

    Create a new filtered writer.

    Parameters:
    out - a Writer object to provide the underlying stream.
    Throws:
    NullPointerException - if out is null
    Mais j'ai quand même la réponse à ma question. Merci beaucoup Tiaps !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Par défaut
    Là tu montrais FilterWriter.
    Regarde à FileWriter, le constructeur existe

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 277
    Par défaut
    AARRRRFFFF !

    Oui, désolé ! Il y a eu une grosse confusion ... au niveau du clic
    Merci Tiaps pour ton aide et ta patience ! C'est résolu !

    @bientôt !

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

Discussions similaires

  1. Lire le contenu d'un fichier PDF
    Par skywaukers dans le forum Delphi
    Réponses: 6
    Dernier message: 18/07/2006, 12h01
  2. Lire le contenu d'un fichier xml
    Par Invité dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 10/01/2006, 19h13
  3. Comment lire le contenu d'un fichier ?
    Par AsmCode dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 24/11/2005, 08h17
  4. [FPDF] Lire le contenu d'un fichier PDF, possible ?
    Par Mister Nono dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/11/2005, 18h47
  5. lire le contenu d'un fichier
    Par rootdaoud dans le forum Langage
    Réponses: 19
    Dernier message: 01/09/2005, 17h39

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