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 :

Problème avec BufferedReader()


Sujet :

Entrée/Sortie Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Problème avec BufferedReader()
    Bonjour,

    J'ai deux boucle while qui porte sur deux BufferedReader :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    BufferedReader a = new ...
    BufferedReader b = new ...
     
    while((a.readLine() != null)){
           while((b.readLine() != null)){
                  ...
                  ...
           }
    }
    a.close();
    b.close();
    Le problème c'est que lorsque que la première boucle s'est exécutée une première fois le b.readLine() a renvoyé null et donc le programme ne rentre plus dans la seconde boucle while.

    J'ai essayé de déclarer mon deuxième BufferedReader entre les deux while pour qu'il se recréé entre chaque itération de la première boucle, mais rien à faire.

    Dans la javadoc, il n'y a que peu de fonctions et je ne vois vraiment pas comment m'en sortir.

    Merci beaucoup de votre aide.

  2. #2
    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,


    Que veux tu faire exactement avec ces deux boucles ?

    a++

    PS : Il manque les try/finally pour la libération des ressources, mais j'espère que c'est pour simplifier la lecture du code posté

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Mais deux boucles while portaient sur deux fichiers différent et très long, je devais vérifier qu'un élément du premier fichier se trouvait ou non dans le second et recommencer l'opération quelques dizaines de miliers de fois.

    J'ai donc recréé juste après le lancement de ma première boucle while mon second BufferedReader.

    Et ça marche!!!!!!

    Seulement comme je ne me mettais pas de retour visuel je ne voyais rien et je croyais que le programme rentrait dans une boucle infinie, seulement il s'exécutait très bien, mais comme c'est très très long, ça prennait du temps!!!

    Voilà.

    S'il y a quand même une autre solution je suis toujours curieux de savoir.

    Merci

  4. #4
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Je vois deux choses pour améliorer les performances :
    - Essais d'augmenter la taille mémoire de tes BufferedReader lors de leur construction.
    - Passe plutôt par le package nio. Plus précisément, fais un mapping mémoire des fichiers pour les lire (méthode map de la classe FileChannel). Cette méthode permet d'utiliser du code optimisé su système d'exploitation lorsque ce dernier le permet.

Discussions similaires

  1. Problème avec BufferedReader
    Par gabriel849 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 12/10/2014, 00h00
  2. Problème avec BufferedReader
    Par kokatou dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 26/05/2006, 23h52
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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