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 :

Lire un OutputStream


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2002
    Messages : 69
    Points : 68
    Points
    68
    Par défaut Lire un OutputStream
    Bonjour,

    J'aimerais pouvoir lire le retour d'une commande système. pour cela j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    {
                String cmd = new String("ls");
                Runtime r = Runtime.getRuntime();
                Process p = r.exec(cmd);
                try {
                    p.waitFor();
                } catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
                String CommandResult = new String(p.getOutputStream().toString());
    Je dois reprendre le Outputstream et créer un String pour ensuite pouvoir l analysée et definir si un problème est survenu :

    Je pense qu'il y a une solution, mais j'arrive pas à trouver quoi et j'ai pas envie de passer par un fichier.

    Si quelqu'un à un idée

    car le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String CommandResult = new String(p.getOutputStream().toString());
    c'est sur que cela ne marche pas

  2. #2
    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 778
    Points
    5 778
    Par défaut
    Avant d'aller plus loin, je te conseille de lire ce tutoriel sur l'utilisation des fluxs.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2002
    Messages : 69
    Points : 68
    Points
    68
    Par défaut
    Merci beaucoup le document est très intéressant, mais je n'ai pas trouvé une solution à mon problème.

    j'ai pensé à ceci en fouillant un peu sur le net

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
                String cmd = new String("ls");
                Runtime r = Runtime.getRuntime();
                Process p = r.exec(cmd);
                try {
                    p.waitFor();
                } catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
     
                ByteArrayOutputStream out = new ByteArrayOutputStream();
                out = (ByteArrayOutputStream)p.getOutputStream() ;
                ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
     
                String CommandResult = new String(in.toString());
    Voilà si je peux avoir votre retour la dessus

  4. #4
    Membre confirmé Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Points : 570
    Points
    570
    Par défaut
    ça n'a rien a voire avec ton probleme d'OutputStream qui d'ailleurs doit avoir un bon millier de réponse sur google... mais j'ai trés trés peur de ce que tu assayes de faire, quand je vois que tu veux lire le resultat de la commande 'ls', dit moi juste que c'est un exemple et que tu ne cherches pas à lister tout ce qu'il y a dans le répertoire ? Parce que si c'est ce que tu cherches à faire, ça équivaut à tuer une mouche au bazooka , va plutôt faire un tour vers la classe File qui a de jolies méthodes pour lister les fichiers et les répertoires.....

  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 778
    Points
    5 778
    Par défaut
    Tu n'as apparement pas bien lu le tutoriel .

    Premièrement, pour lire la sortie du programme il faut récupérer le flux de sortie du programme via getInputStream() et pas getOutputStream() (ça c'est pour récupérer le flux d'entrée du programme).

    Ensuite il te faut lire le InputStream (cf le tutoriel).

    Autre remarque, lors de l'exécution d'une application externe, il est recommandé de "consommer" tous les fluxs (fait une recherche sur le forum, le sujet à été abordé plusieur fois).

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    Voila pour liste les fichiers d'un repertoire

    File oChemin = new File(chemin);
    File[] oCollection = oChemin.getAbsoluteFile().listFiles();

Discussions similaires

  1. Le grand mode d'emploi du forum, à lire si vous souhaitez tout savoir !
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 03/06/2013, 17h36
  2. [OUTPUTSTREAM] créer et lire un outputstream
    Par d_token dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 22/09/2006, 09h26
  3. Réponses: 5
    Dernier message: 20/08/2002, 18h01
  4. Lire 1 bit d'un fichier en C
    Par Anonymous dans le forum C
    Réponses: 3
    Dernier message: 23/05/2002, 18h31
  5. lire une image au format RAW
    Par Anonymous dans le forum OpenGL
    Réponses: 5
    Dernier message: 20/05/2002, 00h11

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