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

Langage Java Discussion :

Où est crée un fichier?


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut Où est crée un fichier?
    Voila, je me pose une question assez importantes en fait! Lorsque l'on créé un fichier de telle façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    File monFichier = new File("test.tst");
    try
    {
      FileOutputStream fileOutputStream = new FileOutputStream(monFichier);
      ObjectOutputStream output = new ObjectOutputStream(fileOutputStream);
      output.writeObject(maClasse);
      output.close();
      fileOutputStream.close();
    }
    catch(Exception e) {}
    Sous quel repertoire est crée le fichier test.tst. J'ai regardé mais il n'est ni crée sous "user.dir" ni sous "user.home"'ce qui semble etre logique ).
    Est-ce que quelqu'un à une idée?

  2. #2
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 6
    Par défaut
    Salut,

    En théorie, le fichier est créé dans le répertoire dans lequel le jar se trouve.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut
    Ouai, le probleme est que je ne lance pas mon jar de cette manière. J'ai associé un type de ficher à mon prog. Ainsi quand je double clique sur un ficher .eril (c'est mon extension) la commande suivante s'execute (sous windows):

    java.exe -jar "C:\Program Files\Test Install\monJar.jar" "%1".

    Et quand je crée un ficher, il se créé alors sous le meme repertoire que le ficher %1 (le fichier .eril). Meme quand je rajoute -Duser.dir=..., c'est pareil!

  4. #4
    Membre expérimenté Avatar de dazz_x
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 269
    Par défaut
    je ne sais pas sous Linux, mais tu peux le récupérer en faisant un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String test=System.getProperty("user.dir");
    voili voilou

    [EDIT : ai pas tout lu ]

  5. #5
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Si tu ne le trouves pas dan les répertoires mentionnés, essaies la fonction de recherche de fichier de ton système d'exploitation :
    F3 dans l'explorateur de fichiers sous windows
    "find / -name "test.tst" -type f -exec ls -la {} \; 2>/dev/null" sous les systèmes unix.

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut
    Lol, mon problème n'est pas la, en fait j'ai trouver un moyen de résoudre le problème. Mais en fait c juste pour comprendre ce qu'il se passe exactement!
    Pour résoudre le prob je met le commande -Duser.dir=... puis dans le prog:
    new File(System.getProperty("user.dir")+File.separator+"test.tst");

    Donc quelle variable d'environnement utilise java pour crée un fichier dont le chemin n'est pas spécifié?

  7. #7
    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
    Il utilise le répertoire courant (".").

    Après pour savoir quel est le répertoire courant... Normalement c'est le répertoire du package par défaut...

  8. #8
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Il me semblait aussi que c'était dans "user.dir".
    Je ne peux-pas faire le test maintenant.
    Peut-être regarder dans le répertoire depuis lequel tu lances l'application en appelant l'interpréteur "java.exe" ?

  9. #9
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut
    Oui c'est ca. C'est depuis le repertoire ou je lance l'application java.exe. Mais comment le récuperer (ou plutot le modifier)?

    EDIT1: logiciellement bien sur!

  10. #10
    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
    Ouais c'est dans user.dir apparemment...

  11. #11
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut
    moi ca marche pas.
    Essais de faire à partir d'un autre disque dur que C:

    java -jar "c:\...\fichier.jar"

    Moi si je le lance de U: mon user.dir vaut U:

  12. #12
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut
    Je crois que j'ai trouvé: java.class.path
    Mais je suis pas sur. J'attend la confirmation d'un expert

  13. #13
    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,


    La propriété java.class.path n'a rien à voir avec le répertoire courant. C'est bien user.dir qu'il faut prendre en compte. Tu peux également utiliser getCanonicalPath() pour obtenir un chemin complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            System.out.println( "Répertoire courant : " + new File(".").getCanonicalPath() );
            System.out.println( "Répertoire courant : " + System.getProperty("user.dir") );
    a++

  14. #14
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut
    Je n'ai jamais dit le contraire mais sous windows, lorsque l'on crée un fichier sans mettre le chemin, il ne le créer pas sous user.dir puisque lorsque je lance mon jar de cette manière:

    U:\>>java -jar -Duser.dir="C:\Program Files\Test Install" "C:\Program Files\Test Install\test.jar"

    Mon programme me créé le fichier test.ini sous U: et non sous C:\Program...

  15. #15
    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 arasium
    Je n'ai jamais dit le contraire mais sous windows, lorsque l'on crée un fichier sans mettre le chemin, il ne le créer pas sous user.dir puisque lorsque je lance mon jar de cette manière:
    Cela fonctionne pourtant chez moi... Que te donne mon code lorsque tu le lances de cette manière ???

    a++

  16. #16
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut
    Attend j'essais avec ton code

  17. #17
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut
    Oui ton code fonctionne !! Cela ne pourrait pas venir de ceci
    new File(".\test.ini");
    qui est différent de
    new file("test.ini");

    Enfin, la je ne comprend plus

    EDIT1: non ca ne viens pas de la je viens de tester

  18. #18
    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,


    Je pense que tu d'es embrouillé dans ton code

    Tu parles de fichiers test.ini et ton code comporte un test.tst...
    De plus, je te conseille de fermer chaque flux dans un bloc finally (cf ce post), et d'éviter à tout prix les bloc catch vide (au minimum un e.printStackTrace()) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
            File monFichier = new File("test.tst");
            try
            {
              FileOutputStream fileOutputStream = new FileOutputStream(monFichier);
              try {
                  ObjectOutputStream output = new ObjectOutputStream(fileOutputStream);
                  try {
                      output.writeObject(maClasse);
                  } finally { output.close(); }
              } finally { fileOutputStream.close(); }
            }
            catch(Exception e) {
                e.printStackTrace();
            }
    a++

  19. #19
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut
    Ok je vais voir cela. Merci beaucoup

Discussions similaires

  1. [PHP 5.4] traitement un fichier TXT dés qu'il est crée
    Par aspkiddy dans le forum Langage
    Réponses: 5
    Dernier message: 15/04/2015, 21h23
  2. Réponses: 0
    Dernier message: 31/08/2010, 15h13
  3. c'est quoi un fichier *.LIBRARY ?
    Par afrikha dans le forum JBuilder
    Réponses: 5
    Dernier message: 30/10/2005, 13h36
  4. Tester que le fichier n'est pas un fichier binaire
    Par fedfil dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 21/10/2005, 17h29
  5. Savoir ou est deposé un fichier dans un drag and drop ?
    Par mkdual dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 24/08/2005, 17h52

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