Bonjour,
Je fais une application java d'ordonnancement de processus.
Au début de cette application, je souhaite tester si un fichier.txt est vide.
Si le fichier est vide, j'initialise un int nommé "ptr" à 0;
Si le fichier n'est pas vide, j'initialise "ptr" avec l'entier stocké dans ce fichier.
Mon fichier.txt en fait me sert à sauvegarder un entier qui représente la valeur avec laquelle j'initialise "ptr" à chaque exécution de mon programme.
Un fichier de sauvegarde quoi.
J'ai essayé de résoudre ce problème de plusieurs manières différentes.
Mon problème majeur, c'est que j'ai remarqué que je ne pouvais pas créer de ObjectInputStream sur un fichier vide, ca me provoque toujours des EndOfFileException..
J'ai donc essayé de faire un code qui fait ce que je demande:
Voici le code:
Mais là déjà je ne peux même pas le compiler car il y a des erreurs.
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 package ordonnancement; import java.io.*; public class NewClass { public static void main(String[] args){ int ptr; File fich = new File("C:/Users/johann/Desktop/Test.txt"); System.out.println("La taille du fichier est : " + fich.length()); try { ObjectInputStream in = new ObjectInputStream(new FileInputStream("C:/Users/johann/Desktop/Test.txt")); ptr = in.readInt(); in.close(); } catch(EOFException e) { System.out.println("Fin du fichier atteint (fichier vide dans mon cas)"); ptr = 0; System.out.println("valeur de ptr = " + ptr); } System.out.println("La valeur de ptr est : " + ptr); System.out.println("La taille du fichier est : " + fich.length()); /* Execution tâche du fichier * La valeur de ptr est suceptible d'être modifiée */ try { ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("C:/Users/johann/Desktop/Test.txt")); out.writeInt(ptr); out.flush(); out.close(); } catch (Exception e1){ e1.printStackTrace(); } }
Je ne comprends pas pourquoi il me fait ces erreurs.
Voici les lignes concernées..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 try { ObjectInputStream in = new ObjectInputStream(new FileInputStream("C:/Users/johann/Desktop/Test.txt")); ptr = in.readInt(); in.close(); }
Quelqu'un peut il m'expliquer les erreurs ?
Et si c'est possible peut il me montrer un code qui saurait faire ce que je veux faire.. (Test fichier vide, initialisation de "ptr").. ?
Merci beaucoup.
Partager