Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1430 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [résolu] lecture à partir d'un BufferedReader

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] lecture à partir d'un BufferedReader

n°1411835
ratakses
Posté le 23-07-2006 à 20:38:07  profilanswer
 

Salut à tous!
 
Alors voilà mon problème, j'aimerais lire ligne par ligne a partir d'un BufferedReader, et afficher au fur et a mesure les lignes lues. Comme je sais pas combien y en a, j'aimerai bien que dès qu'il n'y a plus de ligne, il s'arrête de lire. J'ai fait le code suivant, mais dans ma situation, lorsque il n'y a plus rien à lire, il continue à attendre perpetuellement une nouvelle ligne (puisqu'il attend une nouvelle ligne pour savoir si vraiment il n'y plus rien à lire)...
Je sais pas tellement comment faire, des idées ?
 
merci.
 

Citation :


requestFromServer = new BufferedReader(new InputStreamReader(requestSocket.getInputStream()));
 
String reponse;
while ((reponse = requestFromServer.readLine()) != null){  
System.out.println(reponse);  
}


Message édité par ratakses le 24-07-2006 à 15:59:28
mood
Publicité
Posté le 23-07-2006 à 20:38:07  profilanswer
 

n°1411977
Taz
bisounours-codeur
Posté le 24-07-2006 à 01:14:06  profilanswer
 

défini 'n'a plus rien à lire'. Tant que t'as pas reçu un EOF, tant que ton pair n'a pas fermé son canal, alors il pourrait y avoir quelque chose à lire. Solution : fermé le canal côté émetteur.

n°1412070
ratakses
Posté le 24-07-2006 à 10:23:06  profilanswer
 

En fait je fait une sorte de client FTP, et il s'agit "d'écouter" les messages reçus sur le canal de commandes en FTP. Il n'y donc pas de fin explicite genre EOF, et  le serveur FTP ne ferme pas le canal après y avoir envoyé qqch :)
 
je donne un exemple d'execution qui illustre mon problème :
 

Citation :

$ java monProgramme
220-FTP server ready.
220-<<
220-A few hours grace before the madness begins again.
220->>
220 Ceci est un systeme prive - Aucun utilisateur anonyme autorise


 
Après la 5ième ligne, le programme fait encore un readLine() (pour voir si la ligne suivant est null), mais le serveur n'envoye plus rien, et le programme attend donc indéfiniment. Je voulais juste savoir si qqn connaît le truc pour éviter ca.

n°1412084
nemohp
Adepte du provisoire permanent
Posté le 24-07-2006 à 10:40:13  profilanswer
 

il faut lancer l'ecoute dans un nouveau thread, qui écoute en permanence et qui allimente un buffer

n°1412289
Taz
bisounours-codeur
Posté le 24-07-2006 à 14:03:15  profilanswer
 

ratakses a écrit :


 
Après la 5ième ligne, le programme fait encore un readLine() (pour voir si la ligne suivant est null), mais le serveur n'envoye plus rien, et le programme attend donc indéfiniment.

ce qui est parfaitement normal. la lecture est blocante

n°1412403
ratakses
Posté le 24-07-2006 à 15:59:08  profilanswer
 

voila c'est bon jai fait un thread qui écrit tout ce qu'il recoit dans un while(true), ca marche. merci.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [résolu] lecture à partir d'un BufferedReader

 

Sujets relatifs
[C++ / résolu] Vérifier le type donné à un template... typeid?[RESOLU]Mon formulaire ne marche pas si je met le enctype !
Lecture de fichiers avec accents...[résolu]Ouvrir un site web depuis une application en C
[résolu] UTF-8 et headers (session_start)[Resolu] Type de control (VBA)
Probleme incompatibilite données acces/VBA [résolu][Access] Recherche sur un champs à partir d'une liste
[Resolu]choix d'une couleur dans un userform (VBA) 
Plus de sujets relatifs à : [résolu] lecture à partir d'un BufferedReader


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR