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 :

Problème écriture dans un fichier temporaire


Sujet :

Entrée/Sortie Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Points : 114
    Points
    114
    Par défaut Problème écriture dans un fichier temporaire
    Bonsoir,

    Voila mon but est le suivant, j'essaie d'écrire dans un fichier que je créé dans le dossier temporaire du système (pour qu'il se supprime à la fin de l'exécution du programme) le contenu d'une page HTML or le problème c'est que rien ne s'écrit dedans et mon fichier à un nom très bizarre du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    edt28993052597462906.html
    au lieu de:

    tout court.

    Voici le bout de code en question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String Ligne = null;
    File Temp = File.createTempFile ("edt",".html");
    FileWriter Ecriture = new FileWriter (Temp);
    while ((Ligne = Reader.readLine ()) != null) {
          Ecriture.write (Ligne);
    }
    Si quelqu'un a une solution à mon problème je lui en serait très reconnaissant. Merci d'avance

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Salut,
    Citation Envoyé par scary Voir le message
    Si quelqu'un a une solution à mon problème je lui en serait très reconnaissant. Merci d'avance
    Ce n'est pas un problème, mais une feature plutot

    C'est intentionnel, dans le but d'éviter les name clash dans le dossier temporaire.

    Si tu veux créer un fichier avec un nom précis, crées le directement dans le dossier temporaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.getProperty("java.io.tmpdir")

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Points : 114
    Points
    114
    Par défaut
    Ok si c'est intentionnelle alors cela ne me pose pas de problème de toute façon il sera effacé alors le nom m'importe vraiment pas du tout mais mon vrai soucis était pourquoi rien ne s'écrit dedans ?

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Tu fermes le writer à la fin ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Points : 114
    Points
    114
    Par défaut
    Oui je ferme le writer.

  6. #6
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Oki. Comment vérifies tu que rien ne s'écrit dans le fichier ?

    <hors-sujet>Les conventions de nommage de Java préconisement que les noms des variables commencent par des miniscules</hors-sujet>

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Points : 114
    Points
    114
    Par défaut
    Et bien je l'ouvre avec mon navigateur par défaut à la fin de l'exécution et il n'y a rien qui s'affiche. Je vais donc voir le fichier je l'ouvre avec un éditeur quelconque et il n'y a vraiment rien dedans.

    Pour la convention je m'en souviendrai merci

  8. #8
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Tu es sur que le fichier duquel tu lis n'est pas vide lui aussi ?
    Ajoutes un syso(ligne) sur chaque itération de ton while pour vérifier.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Points : 114
    Points
    114
    Par défaut
    Oui je lit bien chaque ligne du flux. Mais pour que tu puisse voir plus clair je te met le code complet:

    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
    //lecture de la reponse
    		    Reader = new BufferedReader (new InputStreamReader (Conn.getInputStream ()));
    		    String Ligne = null;
    		    File Temp = File.createTempFile ("edt",".html");
    		    FileWriter Ecriture = new FileWriter (Temp);
    		    while ((Ligne = Reader.readLine ()) != null) {
    		    	Ecriture.write (Ligne);
    		        //System.out.println (Ligne);
    		    }
    		    Ecriture.close ();
    		    if (Desktop.isDesktopSupported ()){		
    		    	if (Desktop.getDesktop().isSupported (Desktop.Action.OPEN)){
    		    		Desktop.getDesktop ().open (Temp);
    		    	}
    		    	else {
    		    		System.out.println ("La methode getDesktop() n'est pas disponible sur votre systeme");
    		    	}
    		    }
    		    else {
    		    	System.out.println ("La classe Desktop n'est pas supporte sur votre systeme");
    		    }
    		    Writer.close ();
    	        Reader.close ();
    La partie en question est tout à la fin.

  10. #10
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    La cause est l'avant dernière ligne :

    Tu dis à la jvm d'effacer le fichier à la fin de l'exécution, et l'exécution finit avant que le navigateur n'ouvre la page.

    Suffit de virer cette ligne.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Points : 114
    Points
    114
    Par défaut
    A oui en effet tout s'affiche correctement ça marche bien comme je l'attend MErci

    Comment je fais maintenant pour que le fichier s'efface quand j'en ai pu besoin sans que ce soit moi qui le mette dans la corbeille ?

  12. #12
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Salut,
    Peut etre au démarrage de ton programme scanner le dossier temporaire à la recherche de fichiers dont le nom suit le pattern "edt.+\.html" et les supprimer ?

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Points : 114
    Points
    114
    Par défaut
    Je vais adopter ta méthode qui me parait correcte car au moins comme ça il n'y aura qu'un seul fichier du même type dedans

    Merci encore

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

Discussions similaires

  1. Problème écriture dans un fichier txt
    Par reperret dans le forum VB.NET
    Réponses: 7
    Dernier message: 26/03/2013, 10h26
  2. problèmes écriture dans un fichier
    Par DJEcalcul dans le forum Fortran
    Réponses: 3
    Dernier message: 26/10/2009, 12h06
  3. Problème écriture dans un fichier
    Par bob_warrior89 dans le forum C
    Réponses: 11
    Dernier message: 14/06/2007, 15h37
  4. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  5. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28

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