Sérialisation et erreur "java.io.EOFException"
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:
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:
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!