Construire chemin d' un fichier texte

Résolu/Fermé
Spawn3107 Messages postés 84 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 28 mars 2011 - 24 mai 2007 à 17:19
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 - 24 mai 2007 à 22:52
Bonjour,

j'ai un petit problème lorsque je veux écrire dans un fichier. En fait, pour créer le fichier dans le chemin que veux.

Pour ecrire le projet dans mon fichier :

FileOutputStream fichierOs = new FileOutputStream(System.getProperty("user.dir")+File.separatorChar+tmp+".ser");
ObjectOutputStream oos = new ObjectOutputStream(fichierOs);           
oos.writeObject(Projet);
oos.flush();
oos.close();
fichierOs.close();

Mon problème est dans le FileOutputStream(...). Je veux qu'il enregistre chaque Projet dans un fichier different. Donc je construit le chemin avec tmp(qui est l identifiant du projet) + ".ser".

Donc je veux : C:\Program Files\s1studio\ce\bin\P107424aze.ser

Mais il me fait : C:\Program Files\s1studio\ce\bin\P107\4\24aze.ser

Donc il me renvoie FileNotFoundException.

J'espere que j ai ete clair,

Merci pour votre aide !

3 réponses

amundain Messages postés 110 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 28 août 2012 1
24 mai 2007 à 18:24
Hello,

Tu as été très clair, en effet...mais le fait est que j'ai essayé ce code à la maison, et qu'il fonctionne chez moi !
Je définis une String pour le nom de fichier, et procède par concaténation, comme toi, pour construire le chemin...
Tu es sûr que le problème ne vient pas de ton "tmp", plutôt ?

A +,

amundain

PS :Pour info, ci-joint le code que j'ai essayé et qui tourne...c'est le même, ou presque !
Je travaille sous E:\, et il me crée bien un fichier sous E:\P1047.ser dans lequel apparait ma String en toutes lettres...

        String tmp="P1047";
   
        try
        {
            FileOutputStream fichierOs = new
            FileOutputStream(System.getProperty("user.dir")+File.separatorChar+tmp+".ser");
            ObjectOutputStream oos = new ObjectOutputStream(fichierOs);          
            oos.writeObject(new String("Test écriture"));
            oos.flush();
            oos.close();
            fichierOs.close();
        }
        catch (IOException e)
        {
        System.out.println("Erreur sur : "+System.getProperty("user.dir")+File.separatorChar+tmp+".ser");
        }
3
Spawn3107 Messages postés 84 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 28 mars 2011
24 mai 2007 à 19:52
J ai trouve mon erreur. Comme tu le disais, cela vient du tmp. En fait,il contient une date et pour cela il m'affichait des '/'. Donc avec un tmp.replace('/','_'); , ca marche bien.

Merci
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
24 mai 2007 à 22:52
probleme resolu ^^
Lock ^^

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0