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

Java Discussion :

Impossible de Lire une entree standart


Sujet :

Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Points : 18
    Points
    18
    Par défaut Impossible de Lire une entree standart
    Bonjour,

    Voila j'ai un probleme vraiment bete, impossible de lire une entree standart dans mon thread, je ne saurai meme pas dire si le probleme vient de la.

    J'ai un client serveur, tout fonctionne, juste a un moment dans un thread secondaire je dois lire une valeur au clavier, j'ai essaye le Scanner, ou a l'ancienne avec un BufferedReader et un readline mais rien a faire.

    Au lieu d'etre comme d'habitude a savoir blocant, le programme continu et forcement mon entree n'a pas pu etre saisi et valeur null.

    Voici l'exeption genere :

    java.util.NoSuchElementException: No line found

    J'effectue d'autre operation de ce genre sans probleme dans le main principale de mon client, mais la rien a faire.

    Si quelqu'un avait une idee, merci d'avance,

    Arthur.

  2. #2
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    envois ton code stp
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Mon code n'a rien d'extraordinaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Scanner sc1 = new Scanner(System.in);
    String host = sc1.nextLine();
    System.out.println ("host = "+host);
    En gros mon client est constitue de 4 classes.

    Une classe Client, une classe Connexion qui gere la connexion, et une classe Recepteur et Emetteur qui sont tous les deux threade, le recepteur est lance dans un thread a part et traite les messages que lui envoi le serveur, l'emetteur lui est un thread lance uniquement lorsque je veux envoyer un message.

    Le scanner qui bug a lieu dans le Recepteur, j'ai essayer de passer la la classe connexion a mon recepteur, pour faire la lecture de l'entree standart dans Connexion plutot que le recepteur mais rien a faire.

    Bref il me faudrai trouver pourquoi cette foutu methode nextLine n'est pas comme a son habitude blocante....

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    est-ce que par hasard tu ne lirait pas en même temps l'entrée standard depuis un autre scanner? Il serait alors tout à fait possible que le texte que tu tappe arrive dans l'autre scanner. en général, il veux mieux éviter de mettre plusieurs scanner / buffered reader sur le même input, car le scanner / le bufferedreader vont faire de la lecture à l'avance.

    Si donc un scanner existe déjà ailleurs, s'assurer que tous tes threads utilisent la même instance de Scanner et pas en même temps.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    J'en utilise en effet un autre, mais je fais un close dessus. Je vais essayer d'utiliser le meme pour voir

    edit : Cela fonctionne.. miracle, je ne comprends pas pourquoi vu que je fermais mon autre scanner proprement mais cela fonctionne

    Merci beaucoup

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    close scanner = close inputstream = impossible de lire quoi que ce soit d'autre après

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

Discussions similaires

  1. Impossible de lire une image DICOM
    Par Memboro dans le forum Images
    Réponses: 8
    Dernier message: 22/10/2012, 20h13
  2. Impossible de lire une anim avec FF
    Par goute dans le forum Intégration
    Réponses: 1
    Dernier message: 30/03/2010, 17h00
  3. impossible de lire une page avec un VLAN
    Par Emcy dans le forum Hardware
    Réponses: 9
    Dernier message: 10/04/2007, 12h38
  4. lire une entree a partir du clavier
    Par solawe dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 03/01/2007, 15h22
  5. Shell, lire une entrée clavier
    Par manuaccess10 dans le forum Linux
    Réponses: 8
    Dernier message: 01/06/2006, 22h01

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