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 :

DataInputStream lire au fur et à mesure


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 54
    Points : 29
    Points
    29
    Par défaut DataInputStream lire au fur et à mesure
    Bonjour à tous,

    j'ai ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Process p = Runtime.getRuntime().exec("REFER.exe \""+dossier+"\" \""+video+"\" "+nb_frames);
    DataInputStream dis = new DataInputStream(p.getInputStream());
    String ligne ="";
    while(!(ligne = dis.readLine()).equals("end_of_referencing"))
    {
         System.out.println(ligne);
    }
    Le problème c'est qu'il ne m'écrit pas au fur et à mesure les informations, on dirait qu'il stocke tout dans un buffer et qu'à la fin, une fois REFER.exe terminé, il imprime le contenu du buffer. Or j'aimerais pouvoir les lire au fur et à mesure !

    merci d'avance

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    flush() je pense ... ça vide le tampon

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Lorsque tu utilise la classe Process, il est recommandé de consommer tous les flux et ce dans des threads séparés sinon il y a des risques de blocage de ton application.
    cf le post Java : éxécuter une commande dos et rediriger vers un fichier

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 54
    Points : 29
    Points
    29
    Par défaut
    je dois avouer que je comprends pas bien l'intérêt d'un Thread dans mon cas ! je ne passe pas par l'invite de commandes j'ai mon propre .exe que je dois lancer, ce dernier écrit sur la sorite standard 'out' donc je lis en input ce qui est censé arrivé ! ça arrive bien mais c'est pas affiché immédiatement ! c'est stocké je ne sais où et c'est affiché à la fin de l'execution du .exe !

    alors est-ce que tu pourrais me donner un exemple !

  5. #5
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Peut-être est-ce écrit sur le errorStream ...
    L'interet de consommer tous les flux d'un process dans des threads différents est que :
    • tu est sûr de tous lire (sortie standard et sortie d'erreur)
    • tu est sûr de ne pas bloquer ton application
    Regarde ce messagejowo donne une classe fort intéressante sur ce propos (tu peus même l'adapter afin d'utiliser un ProcessBuilder qui te permet de rediriger le errorStream vers le InputStream afin de n'avoir que celui-là à lire ).

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 54
    Points : 29
    Points
    29
    Par défaut
    merci j'vais réfléchir à ça !

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/06/2014, 17h20
  2. lire les caractères entrés au clavier au fur et à mesure
    Par Decon dans le forum Général Java
    Réponses: 9
    Dernier message: 07/05/2010, 13h19
  3. Liste a incrémenter au fur et à mesure des choix
    Par Mat_DZ dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/08/2006, 17h19
  4. Réponses: 6
    Dernier message: 16/05/2006, 16h17
  5. [C#] Affichage au fur et à mesure
    Par joujou_le_fou dans le forum ASP.NET
    Réponses: 26
    Dernier message: 17/06/2005, 11h45

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