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

Java Discussion :

Ecriture dans un fichier distant


Sujet :

Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Par défaut Ecriture dans un fichier distant
    Salut
    Je veux ecrire dans un fichier qui se trouve sur un serveur. J'ai ecrie ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    URL url=new URL("http://localhost:8080/webdav/test.xml"); 
                 URI uri= url.toURI(); 
                  File fichier = new File(uri);
                  OutputStream file= new FileOutputStream(fichier);
    lorsque j'ai exécuté mon programme qui contient ce bout de code j'ai eu cette erreur:
    Exception in thread "main" java.lang.IllegalArgumentException: URI scheme is not "file" at java.io.File.<init>(File.java:383)
    Aidez moi s'il vous plait à resoudre mon problème
    Merci d'avance pour votre aide

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 680
    Par défaut
    Un serveur web permet de charger des fichier directement, pas de les envoyer.

    Si tu veux envoyer un fichier il faut passer comme paramètre "multipart-file" d'une page a charger et que ton serveur se charge de traiter ce paramètre.

    Ceci dit utiliser la classe URL pour ça deviens très complexe. Quel serveur as tu en face?

  3. #3
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    Salut,

    Un serveur web permet de charger des fichier directement, pas de les envoyer.
    Sauf qu'il semble vouloir utiliser du WebDAV d'après l'URL donnée en exemple.

    Même si je ne l'ai jamais utilisée personnellement, il existe une librairie de la fondation Apache pour gérer ce genre d'échange: Jackrabbit WebDAV Library.

  4. #4
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Par défaut
    Salut
    Merci pour votre réponse. Mais mon programme premet d'écrire le résultat d'une requête dans un fichier XML. J'ai testé mon programme lorsque mon fichier existe sur mon disque. Puis j'ai choisi de modifier le programme à fin que le fichier XML soit sous l'arborécence du serveur tomcat par ce que mon programme je vais l'intégrer dans un projet web. Je veux savoir c'est quoi l'erreur de mon code défine au début de la conversation.
    Merci pour votre aide.

  5. #5
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 680
    Par défaut
    La classe File ne peut manipuler que des url de type fichier(file: ), or tu lui passe une url de type http(http: ). D'où ton erreur.

  6. #6
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Par défaut
    Salut
    J'ai essayé ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    URL url=new URL("http://localhost:8080/webdav/resultat.xml");
    URI uri=url.toURI();
    File fichier=new File(uri.toString());
    OutputStream file= new FileOutpoutStream(fichier);
    Mais lorsque j'ai exécuter mon code et j'ai eu l'erreur suivante:
    Java.io.FileNotFoundException: http:/localhost:8080/webdav/user.xml (No such file or directory)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:209)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:160)
    at xml.Test.main(Test.java:68)

    et lorsque j'ai essayé d'afficher le contenu des variables url, uri et uri.toString() j'ai obtenu "http://localhost:8080/webdav/resultat.xml".
    S'il vous plait aidez moi à resoudre ce problème et s'il y a une autre idée proposée la.
    Merci d'avance.

  7. #7
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    Je crois que tout a déjà été dit:

    La classe File est incapable d'écrire dans le fichier que tu définiras par une URI du type 'http:...'. Donc pas besoin de t'acharner, ça ne marchera jamais.

    A nouveau tu as le choix entre les deux possibilités qu'on t'a proposées:

    - soit tu veux travailler via le protocole HTTP + WebDAV et donc tu es obligé d'utiliser une librairie dédiée comme celle que je t'ai proposé ci-dessus.

    - soit le programme qui écrit dans le XML s'exécute sur la même machine que celle où est stocké ton fichier XML et tu veux continuer à utiliser la classe File en accédant au fichier localcement comme n'importe quel autre fichier. Dans ce cas, il te faut obligatoirement utiliser une URI du type 'file:...', comme te l'a notifié Uther.

Discussions similaires

  1. probleme d'ecriture dans un fichier texte
    Par azrael88370 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/01/2005, 17h33
  2. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 22h48
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  4. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

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