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

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 259
    Points : 97
    Points
    97
    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 habitué
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Points : 143
    Points
    143
    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
    Bonne chance, Bonne journée, bonne année bonne santée et etc ...
    Youpi la vie est belle ! Et vive la fraicheur

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

    Informations forums :
    Inscription : Avril 2003
    Messages : 259
    Points : 97
    Points
    97
    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 habitué
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Points : 143
    Points
    143
    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)
    Bonne chance, Bonne journée, bonne année bonne santée et etc ...
    Youpi la vie est belle ! Et vive la fraicheur

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

    Informations forums :
    Inscription : Avril 2003
    Messages : 259
    Points : 97
    Points
    97
    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 habitué
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Points : 143
    Points
    143
    Par défaut
    Là tu montrais FilterWriter.
    Regarde à FileWriter, le constructeur existe
    Bonne chance, Bonne journée, bonne année bonne santée et etc ...
    Youpi la vie est belle ! Et vive la fraicheur

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

    Informations forums :
    Inscription : Avril 2003
    Messages : 259
    Points : 97
    Points
    97
    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