Olá pessoal. Estou tentando gravar mais de um objeto em um arquivo binário, até consigo pelo que estou vendo, porém, não estou conseguindo ler. Alguém poderia me dá um luz?
import java.io.Serializable;
import java.time.LocalDate;
public class Cliente implements Serializable {
private String nome;
private String cpf;
private LocalDate nascimento;
private String endereco;
private String telefone;
public Cliente(String nome, String cpf, LocalDate nascimento, String endereco, String telefone) {
this.nome = nome;
this.cpf = cpf;
this.nascimento = nascimento;
this.endereco = endereco;
this.telefone = telefone;
}
public String getNome() {
return nome;
}
public String getCpf() {
return cpf;
}
public LocalDate getNascimento() {
return nascimento;
}
public String getEndereco() {
return endereco;
}
public String getTelefone() {
return telefone;
}
}
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.time.LocalDate;
public class GravarArquivo {
public static void main(String[] args) throws IOException {
Cliente c1 = new Cliente("Tiago", "111.111.111-00",
LocalDate.of(1111, 11, 11), "Almirante Barroso",
"11 11111111");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("Cliente.bin", true));
oos.writeObject(c1);
oos.close();
}
}
import java.io.FileInputStream;
import java.io.ObjectInputStream;
public class LerArquivo {
public static void main(String[] args) throws Exception {
ObjectInputStream oos = new ObjectInputStream(new FileInputStream("Cliente.bin"));
Object obj = null;
while ((obj = oos.readObject()) != null) {
System.out.println(((Cliente) obj).getCpf());
}
oos.close();
}
}
Exception in thread "main" java.io.StreamCorruptedException: invalid type code: AC
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1563)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:422)
at LerArquivo.main(LerArquivo.java:12)