Bonjour,
Je rencontre un soucis lors de la lecture d'un fichier caché sous Windows. C'est un fichier dans lequel je stocke des informations sous la forme d'objets sérialisés. Je parviens à écrire le fichier avec les commandes suivantes :
Par contre, lorsque je procède de manière analogue pour lire le fichier, j'ai une execption (fichier introuvable). Le code pour la lecture est le suivant :
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 // Ouverture d'un flux de sortie vers le fichier specifie // PATH_FICHIER est une constante definissant le chemin du fichier voulu FileOutputStream fos = new FileOutputStream(PATH_FICHIER); // Creation d'un "flux objet" avec le flux fichier ObjectOutputStream oos = new ObjectOutputStream(fos); try { // Serialisation : ecriture de l'objet dans le flux de sortie oos.writeObject(monObjet); // On vide le tampon oos.flush(); } finally { // Fermeture des flux try { oos.close(); } finally { fos.close(); } }
A noter que ce même code fonctionnait correctement tant que le fichier en question n'était pas un fichier caché.
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 // Ouverture d'un flux d'entrée depuis le fichier specifie FileInputStream fis = new FileInputStream(PATH_FICHIER); // Creation d'un "flux objet" avec le flux fichier ObjectInputStream ois = new ObjectInputStream(fis); try { // Deserialisation : lecture de l'objet depuis le flux d'entree return (ClasseDeMonObjet) ois.readObject(); } finally { // On ferme les flux try { ois.close(); } finally { fis.close(); } }
Enfin, je rend le fichier caché de la façon suivante (code appelé après chaque écriture du fichier) :
Si quelqu'un a une explication (et une solution...), je suis preneur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 String[] cmd = { "attrib", "+H",PATH_FICHIER }; Process process = Runtime.getRuntime().exec(cmd); process.getOutputStream().close(); process.getErrorStream().close();
Merci.
Mako.
Partager