Lectura de objetos en ficheros
Publicado por Sergio (5 intervenciones) el 30/11/2017 20:59:39
Hola, buenas tardes-noches. Estoy haciendo un ejercicio que consiste en introducir matriculas en un fichero y luego leerlo. Pero me sale la excepcion (java.io.StreamCorruptedException)
El código es este, he buscado soluciones pero no la veo. La clase en la que escribo los datos es esta.
No veo donde está el error sinceramente, también es verdad que no comprendo del todo el funcionamiento de las clases objectinput y objectoutput
Muchas gracias
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
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.Serializable;
public class Leyendo implements Serializable{
private static final long serialVersionUID = 82997918954626154L;
public static void main(String[] args) throws IOException, ClassNotFoundException {
ObjectInputStream ois = null;
try {
ois = new ObjectInputStream(new FileInputStream("Matriculas"));
while(true) {
Matricula matricula =(Matricula) ois.readObject();
System.out.println(matricula);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
ois.close();
}
}
}
El código es este, he buscado soluciones pero no la veo. La clase en la que escribo los datos es esta.
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
public class Escribiendo implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1079087112623194615L;
public static void main(String[] args) throws IOException {
File f = new File("Matriculas");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(f, true));
Scanner sc = new Scanner(System.in);
System.out.println("Introducir matrícula");
String entrada = sc.nextLine();
while(!entrada.isEmpty()) {
Matricula matricula = new Matricula(entrada);
oos.writeObject(matricula);
entrada = sc.nextLine();
}
sc.close();
oos.close();
}
}
class Matricula implements Serializable{
private static final long serialVersionUID = -6693095405232125383L;
private String matricula;
public Matricula(String matricula) {
this.matricula = matricula;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
@Override
public String toString() {
return "Matricula [matricula=" + matricula + "]";
}
}
No veo donde está el error sinceramente, también es verdad que no comprendo del todo el funcionamiento de las clases objectinput y objectoutput
Muchas gracias
Valora esta pregunta
0