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 :

BufferedOutputStream.flush() ne fait rien ?


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Développeur .NET
    Inscrit en
    Mai 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 50
    Par défaut BufferedOutputStream.flush() ne fait rien ?
    Bonjour,
    Je suis en train de programmer une interaction entre une application Java, que je réalise, et mysql.
    Je lance le programme et je demande l'execution d'une requête :
    // Au prealable : _out = process.getOutputStream();
    BufferedOutputStream bos = new BufferedOutputStream(_out);
    String request = "Ma requete SQL;";
    bos.write(request.getBytes());
    bos.flush();
    Si je m'en tiens là, il ne se passe rien. Il faut que je rajoute :
    bos.close();
    pour que ma requête soit traitée.
    Cela ne m'intéresse pas car je n'ai pas envie de fermer le flux à ce moment là. Où cela cloche-t-il ?

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Le problème ne vient pas du flush() qui est bien effectué par le BufferedOutputStream, mais plutôt de la commande SQL que tu envoies : le programme doit surement attendre une fin de ligne (\n ou \r\n) afin d'exécuter la requête. Or tu ne lui en envois pas...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String request = "Ma requete SQL;" + System.getProperty("line.separator");
    a++

    PS : Pourquoi exécuter une requête de la sorte ? Il serait plus simple d'utiliser directement JDBC !?

  3. #3
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Tu connais JDBC?

  4. #4
    Membre averti
    Profil pro
    Développeur .NET
    Inscrit en
    Mai 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 50
    Par défaut
    Le problème ne vient pas du flush() qui est bien effectué par le BufferedOutputStream, mais plutôt de la commande SQL que tu envoies : le programme doit surement attendre une fin de ligne (\n ou \r\n) afin d'exécuter la requête. Or tu ne lui en envois pas...
    Très bien, c'était la solution à mon problème Merci.

    Pourquoi exécuter une requête de la sorte ? Il serait plus simple d'utiliser directement JDBC !?
    Oui, mais on s'entend très mal tous les deux. Non je rigole, je n'ai pas le choix, car je n'ai pas accès direct à mysql sur le serveur où il se trouve. J'ai juste un accès à l'exécutable partagé et donc par conséquent, je dois travailler en ligne de commande.

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par pofet Voir le message
    J'ai juste un accès à l'exécutable partagé et donc par conséquent, je dois travailler en ligne de commande.


    Autant s'attaquer à un tank avec une petite cuillère alors qu'on a un missile anti-char sous la main...


    Bon courage...

    a++

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

Discussions similaires

  1. [PHP-JS] Méthode flush() qui ne fait rien
    Par Khrysby dans le forum Langage
    Réponses: 9
    Dernier message: 21/05/2006, 19h55
  2. PostQuitMessage ne fait rien
    Par venomelektro dans le forum Windows
    Réponses: 1
    Dernier message: 04/01/2006, 11h16
  3. [debutant]programme qui ne fait rien.
    Par Battosaiii dans le forum Interfaces Graphiques en Java
    Réponses: 10
    Dernier message: 04/12/2005, 22h19
  4. procédure stockée qui ne fait rien
    Par trotters213 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 10/03/2005, 20h25
  5. [Process] pb exec sous unix, ne plante pas mais ne fait rien
    Par NiBicUs dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 10/12/2004, 05h27

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