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 :

FileOutputStream : méthode native open


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Par défaut FileOutputStream : méthode native open
    Bonjour,

    J'ai déjà rechercher un peu partout (peut-être que je m'y prends mal) mais je ne trouve pas quel est le code appelé par la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    /**
         * Opens a file, with the specified name, for writing.
         * @param name name of file to be opened
         */
        private native void open(String name) throws FileNotFoundException;
    qui se trouve dans la classe FileOutputStream.

    Je sais qu'elle doit utiliser une méthode écrite en C mais j'aurais voulu savoir comment était fait l'appel à cette méthode.

    Mon but final étant d'appeler cette méthode C en personnalisant les paramètres passés en entrée.

    Merci pour votre aide.

  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,

    Citation Envoyé par ruscov Voir le message
    Je sais qu'elle doit utiliser une méthode écrite en C mais j'aurais voulu savoir comment était fait l'appel à cette méthode.
    Surement open() ou fopen()...

    Citation Envoyé par ruscov Voir le message
    Mon but final étant d'appeler cette méthode C en personnalisant les paramètres passés en entrée.
    Dans quel but ? Que veux-tu faire précisément ?

    a++

  3. #3
    Membre chevronné Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Par défaut
    Merci pour la réponse rapide.

    Alors c'est un peu compliqué mais je vais essayer de bien l'expliquer.

    On a une appli client lourd qui tourne en local et un serveur distant qui fait la partie business. Oui je sais c'est un peu bizarre mais c'est pas moi qui décide.

    A un moment dans le client lourd, l'utilisateur peut générer un document RTF, c'est le serveur qui s'en occupe. Dans le cas où le document est ouvert (par Word par exemple) et que l'utilisateur veut le regénérer, il y a une exception au moment du close() et le fichier est vide (0 Kb).

    Par contre, si tout tourne en local, il y a une exception qui remonte bien avant qui dit qu'un autre process accède déjà au fichier.

    Mon chef de projet veut ABSOLUMENT savoir quelle est la fonction C utilisée et avec quels paramètres pour pouvoir faire son propre appel à cette fonction en espérant résoudre le problème cité ci-dessus.

    Maintenant, je suis prêt à une autre solution.
    J'ai déjà suggéré de mettre un dialogue avec un warning pour prévenir l'utilisateur que si le document est déjà ouvert par un programme cela posera problème,mais cela n'a pas été accepté...

    Merci

  4. #4
    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 ruscov Voir le message
    Mon chef de projet veut ABSOLUMENT savoir quelle est la fonction C utilisée et avec quels paramètres pour pouvoir faire son propre appel à cette fonction en espérant résoudre le problème cité ci-dessus.
    Il s'agit là de protection de l'OS. Je ne pense pas que tu puisses passer outre même en passant par des appels systèmes.
    De plus cela impliquerait de recoder entièrement FileOutputStream...



    Sinon je n'ai pas compris la différence entre le cas où tu as l'exception à l'ouverture du fichier, et celui où tu l'as lors de la fermeture.

    Citation Envoyé par ruscov Voir le message
    Maintenant, je suis prêt à une autre solution.
    La question est : que dois-tu faire dans le cas où le fichier est ouvert par Word ???


    a++

  5. #5
    Membre chevronné Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Par défaut
    Sinon je n'ai pas compris la différence entre le cas où tu as l'exception à l'ouverture du fichier, et celui où tu l'as lors de la fermeture.
    Quand je teste en local (clien lourd et serveur tourne en local sur ma machine), j'ai un exception du style FileNotfoundException file already used by another process au tout début de mon traitement et le fichier RTF est inchangé.

    Par contre en test normal, clien lourd en local et serveur distant, j'ai un IOException permission denied sur la ligne outputStream.close(), donc bien trop tard car le mal est fait, le fichier RTF est vide.

    La question est : que dois-tu faire dans le cas où le fichier est ouvert par Word ???
    Idéalement, avoir le même comportement que lorsque j'ai tout en local. Empêcher le traitement d'avoir lieu. Le soucis est que le serveur ne sait pas savoir ce que le client fait.

  6. #6
    Membre chevronné Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Par défaut
    Si quelqu'un a une réponse, je suis toujours à la recherche d'une solution. Je viendrai mettre ma découverte si je trouve.

Discussions similaires

  1. Méthode native en Java
    Par air75 dans le forum Langage
    Réponses: 16
    Dernier message: 23/01/2008, 17h54
  2. "Dé-surcharger" une méthode native javascript
    Par Takezo1584 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/08/2007, 12h37
  3. [JNI] Time out sur méthode native
    Par pierre2006 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 17/11/2006, 11h44
  4. [JNI] Java ne trouve pas mes méthodes natives
    Par carotte31 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 14/06/2006, 21h47
  5. [VB6] Fonctions et méthodes avec Open
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 29/05/2006, 13h20

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