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 :

[io] écrire dans un inputStream


Sujet :

Entrée/Sortie Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Par défaut [io] écrire dans un inputStream
    Bonjour,

    on peut faire comment pour écrire dans un inputStream ?

    je cherche à écrire dans un inputStream car j'aimerais lancer une commande telnet via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Runtime rt = Runtime.getRuntime();
    try {
    Process appli = rt.exec( "telnet toto" );
    InputStream in =  appli.getInputStream();
    in.write("mkdir toto".getBytes());
    merci

  2. #2
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    tu voudrais pas plutot ecrire dans un OutputStream, sinon faut appeler James Goosling je pense pour qu'il te developpe ca

  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 : 42
    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
    Par défaut
    Un InputStream sert à lire, pour écrire il faut utiliser un OutputStream.
    Je te conseil de lire quelques cours sur les fluxs ainsi que la FAQ. Tu peux commencer par ce tutoriel sur le package java.io .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Par défaut
    baine moque toi

    j'ai copié sur toi.

    j'ai honte un peu, mais je voulais vraiment tester en vitesse

    je pense que j'aurais du mieux travailler mes I/O...

    Citation Envoyé par BainE
    En gros, tres gros meme : P
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //Ca commence comme ca
    Runtime rt = Runtime.getRuntime();
    //La dessus tu demande l'execution de telnet
    //Bon faudra ptet lui filer un login mot de passe... a voir
    //Tu recupere un handle sur le Process en cours
    Process appli = rt.exec( "c:\WinNT\system32\telnet" );
    //Sur ce process tu recupere un flux d'entrée par lequel tu va balancer les commandes
    InputStream fluxentree = appli.getInputStream();
     
    //Pour chaque commande tu envoie dans le flux
    for( String commande : List<String> lstCommandeAExecuter ){
       fluxEntre.write( commande );
    }
    voila en gros

  5. #5
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    lol, meme pas honte
    bon un peux quand meme.
    C'etait gentil j'en fais des pires la preuve

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Par défaut
    ne le prend pas mal, je ne me moquais pas de ton ancienne réponse, mais du fait que tu te moquais de moi !

    donc, du coup, ca marche pas ?

  7. #7
    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 : 42
    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
    Par défaut
    Citation Envoyé par BainE
    En gros, tres gros meme : P
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //Sur ce process tu recupere un flux d'entrée par lequel tu va balancer les commandes
    InputStream fluxentree = appli.getInputStream();
    Citation Envoyé par BainE
    tu voudrais pas plutot ecrire dans un OutputStream, sinon faut appeler James Goosling je pense pour qu'il te developpe ca
    Jaaaaaames, Jaaaaaaames .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  8. #8
    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 : 42
    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
    Par défaut
    Citation Envoyé par d_token
    donc, du coup, ca marche pas ?
    Cf ma première réponse + Javadoc de la classe Process.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Par défaut


    même avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    appli.getOutputStream().write("mkdir toto\n".getBytes());
    je n'ai pas de réponse concluante.

    ca vient peut être d'autre part.

    En tout cas merci à vous deux pour vos réponses.

    (BainE qui me dit: )

  10. #10
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    A la rigueur, tu peux regarder dans ProcessBuilder

  11. #11
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    a part le "/n" que je n'aime pas ca me semble correct.
    Ca ne serait pas un bon vieux probleme de droit UNIX ?
    en essayant de te loguer en root ton rep n'est pas créé ?

  12. #12
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    As tu pensé à faire un thread qui lit la sortie du Process (Process.getInputStream() :p ) et qui affiche le tout ?
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Par défaut
    c'est sur du windows. Sur unix, j'utilise autre chose

    @xavlours : non, il y a une page blanche.

    enfin, il ne s'affiche rien

  14. #14
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    lol, je savais meme pas que window$ connaissait.
    Mais bon j'ai jamais été de ce bord la

  15. #15
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    tiens poulet c'est pour ratrapper mes bourdes

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Process appli = null;;
    try {
    	appli = rt.exec( "cmd.exe" );
    } catch (IOException e) {
    	System.out.println( e.getMessage() );
    }
     
    if( appli != null ) {
    	OutputStream fluxentree = appli.getOutputStream();
     
    	try {
                    // Je dirais qu'il faille quadrupler les antislash (cf test dans la console
    		fluxentree.write( "mkdir c:\\\\ZOB\n".getBytes() );
                    //Pour vider le buffer, parce que sinon
    		fluxentree.flush();
     
                    //Et ca c'est parce que si ton appli se termine avant la création tu l'as dans l'os j'ai l'impression		
    		Thread.sleep( 500 );
    	} catch (IOException e) {
    		System.out.println( e.getMessage() );
    	} catch ( Exception e) {
    		System.out.println( e.getMessage() );
    	} 
    }
    Qui c'est le plus fort !!!
    bon s'cusez fin de journée
    A plus tous

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Par défaut
    Tout d'abord un grand merci ! (tu n'avais rien à rattraper )

    ensuite

    Ton programme marche à la perfection ! mais... pas dans mon cas.

    je ne sais pas pourquoi alors j'ai suivi les précédents conseils de xavlours et j'ai espionner mon appli :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Microsoft Windows XP [version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.
     
    C:\Documents and Settings\user1\javaworkspace\testTELNET>telnet toto
     
    C:\Documents and Settings\user1\javaworkspace\testTELNET>
    si je lance le telnet dans la "vrai" invite de commande, j'obtiens un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    *===============================================================
    Bienvenue à Microsoft Telnet Server.
    *===============================================================
    C:\>
    par contre toutes les instructions que je passe au programme sont bien exécutées... (les mkdir, j'ai même demandé un echo, je vois l'echo...)

Discussions similaires

  1. Ouvrir et écrire dans un fichier .txt en T-SQL
    Par joul's dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 27/10/2008, 21h04
  2. ouvrir et écrire dans un doc excel
    Par audrey_ dans le forum ASP
    Réponses: 8
    Dernier message: 13/12/2004, 15h38
  3. écrire dans un champs généré dynamiquement
    Par scoder dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/12/2004, 10h14
  4. Réponses: 1
    Dernier message: 24/11/2004, 16h54
  5. [JAR] Comment écrire dans un fichier properties dans un jar
    Par Alec6 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 05/10/2004, 15h16

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