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 :

[debutant] Lecture d'un fichier texte


Sujet :

Entrée/Sortie Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Points : 102
    Points
    102
    Par défaut [debutant] Lecture d'un fichier texte
    salut

    pour l'une de mes applications j'auurai besoin de lire le contenu d'un fichier texte (.txt) en entier comment fait on tout simplement
    je souheterai le recuperer dans une variable de type string

    et aussi une autre question independante sur la lecture d'une ligne precise dans un fichier texte idem comment faire

    merci de votre aide

    ps: désolé si la reponse se trouve deja sur le forum mai ma recherche ne la pas trouver

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Salut,

    tu peux utiliser un BufferedReader, c'est fait exprès pour lire des données lignes par lignes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    try {
      BufferedReader br = new BufferedReader(new FileReader("monfichier.txt"));
     
      String line; 
      while((line=br.readLine())!=null)
        System.out.println(line);
    } catch(IOException e) {
      e.printStackTrace();
    }
    sinon, pour un accès direct à une ligne, c'est impossible, ce qui s'en rapproche le plus est la classe RandomAccessFile, mais tu dois connaître non pas l'index de ligne mais l'index d'octet pour te positionner dans le fichier


  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Points : 102
    Points
    102
    Par défaut
    merci pour l'info

    Premier question: Lire le fichier ligne par ligne est-il le seul moyen pour récupérer l'intégralité du fichier ou y-at-il plus rapide car j'ai certaines contraintes de temps.


    deuxième question:

    Pour écrire dans un fichier j'ai utilissé un objet PrintWriter or toi tu me conseil d'utiliser BufferedReader.
    Devrais-je utiliser l'objet BufferedWriter pour l'écriture ou est-ce que ça ne pose pas de problèmes? Quelle est la solution la plus rapide (contraintes de temps)?

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Tempotpo
    Premier question: Lire le fichier ligne par ligne est-il le seul moyen pour récupérer l'intégralité du fichier ou y-at-il plus rapide car j'ai certaines contraintes de temps.
    Non tu peux directement utiliser la méthode read() sur un tableau, qui te permet de lire ton fichier par bloc de la taille souhaité...


    Citation Envoyé par Tempotpo
    deuxième question:

    Pour écrire dans un fichier j'ai utilissé un objet PrintWriter or toi tu me conseil d'utiliser BufferedReader.
    Devrais-je utiliser l'objet BufferedWriter pour l'écriture ou est-ce que ça ne pose pas de problèmes?
    Tu ne compares pas la même chose... BufferedWriter permet une écriture bufférisé, c'est à dire qu'il comporte un buffer qui sera écrit seulement lorsqu'il sera plein. Cela permet par exemple d'effectuer dans ton code une écriture caractère par caractère, mais de n'effectuer une écriture sur le disque que lorsque il y a assez de données à écrire...

    A l'inverse PrintWriter permet de simplifier l'écriture de données en proposant un ensemble de méthode pour les principaux types de données...

    enfin tu peux tout à fait utiliser les deux conjointement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Writer w = new PrintWriter(new BufferedWriter( ... ));
    Citation Envoyé par Tempotpo
    Quelle est la solution la plus rapide (contraintes de temps)?
    Cela dépend de ce que tu doit effectuer comme traitement. Du type de tes fichiers, etc.

    Tu ne donnes pas suffisamment de détail pour pouvoir t'aider plus que cela...

    a++

  5. #5
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    pour les contraintes de temps, je ne peux pas te répondre, à toi de faire des tests...

    Une chose est sûre: une lecture ligne par ligne est beaucoup plus rapide qu'une lecture octet par octet, une écriture ligne par ligne est plus efficace qu'une écriture octet par octet... pour des questions de taille des tampons et de nombre d'accès au disque

    Il y a aussi les FileChannel (java.nio) qui sont une autre alternative, un poil plus agréable à utiliser et efficace.


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

Discussions similaires

  1. [Débutant] Lecture dans un fichier texte
    Par babemagus dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 07/07/2005, 13h17
  2. [debutant] lecture d'un fichier txt de 10mo
    Par karamazov994 dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 19/04/2005, 16h55
  3. [C#] Lecture d'un fichier texte (farfelu)
    Par choas dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/04/2005, 15h33
  4. Lecture d'un fichier Texte
    Par jcharles dans le forum Bases de données
    Réponses: 8
    Dernier message: 27/10/2004, 15h58
  5. Stockage de données & lecture d'un fichier texte
    Par petitours dans le forum C++Builder
    Réponses: 6
    Dernier message: 13/03/2004, 15h05

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