Bonjour à tous,

J'ai développé cette petite appli sous eclipse, et quand je la lance, elle fonctionne mais a la fin dans la console j'ai cette erreur :

java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at Main.main(Main.java:55)

Je ne connais encore pas bien le Java et je ne sais pas d'ou ça peut venir...

J'utilise ces 2 classes :

Main.java :

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
 
 
public class Main {
	public static void main(String[] args) {
		//Déclaration des objets en dehors du bloc try/catch
        ObjectInputStream ois;
        ObjectOutputStream oos;
 
 
        String fichier = "livre.txt";
 
 
        try {
        	oos = new ObjectOutputStream(
        				new BufferedOutputStream(
        						new FileOutputStream(
        								new File("livre.txt"))));
 
 
        	//Nous allons écrire chaque objet Livre dans le fichier
 
 
       	oos.writeObject(new Livre("livre1","auteur1", "genre1", 500));
       	oos.writeObject(new Livre("livre2", "auteur2", "genre2", 600));
       	oos.close();
 
 
 
 
        	//Récupération des données
        	ois = new ObjectInputStream(
    				new BufferedInputStream(
    						new FileInputStream(
    								new File("livre.txt"))));
 
 
 
 
        	//Et affichage
        	System.out.println("Affichage des livres :");
			System.out.println("*************************\n");
 
        	while (fichier != "") {
 
					try {
							System.out.println(((Livre)ois.readObject()).toString());
						} 
						catch (ClassNotFoundException e) 
						{
							e.printStackTrace();
						}
 
 
        	}    	
 
 
 
	}
			ois.close();
 
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }     	
     }
}


Livre.java :

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
 
import java.io.Serializable;
 
 
public class Livre implements Serializable{
	private String titre;
	private String nomAuteur;
	private String genre;
	private int nbPage ;
 
 
 
	public Livre(String titre, String nomAuteur, String genre, int nbPage) {
		this.titre = titre;
		this.nomAuteur = nomAuteur;
		this.genre = genre;
		this.nbPage = nbPage;
		  }
 
		}
 
 
 
 
 
 
 
	public String toString(){
		return 	"Titre du livre : " + this.titre + 
				"\nAuteur : " + this.nomAuteur +
				"\nGenre : " + this.genre +
				"\nNombre de pages : " + this.nbPage +
				"\n";
	}	
 
}
Merci de votre aide!