Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, estou com um problema sério!
Meu professor da Faculdade pediu pra fazer um programa onde todos os dados devem ser armazenados e recuperados de arquivos binários com extensão .dat.
Até consigo criar o arquivo, mas está dando erro na hora de gravar os arquivos, pois tenho que armazenar um ArrayList dentro do arquivo.
Segue o código:
public void CriarArquivo(ArrayList<Livro> livros) throws IOException {
try {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("livros.dat"));
oos.writeObject(livros); //nesta linha dá erro...
oos.close();
} catch (FileNotFoundException e1) {
System.out.println("Não foi possível criar o arquivo");
e1.printStackTrace();
} catch (NotSerializableException e1) {
System.out.println("Não foi possível adicionar dados no arquivo");
e1.printStackTrace();
}
}
O erro que dá é o seguinte:
Não foi possível adicionar dados no arquivo
java.io.NotSerializableException: br.com.opet.model.Livro
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at java.util.ArrayList.writeObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at br.com.opet.persistence.LivroBO.CriarArquivo(LivroBO.java:112)
at br.com.opet.persistence.LivroBO.AdicionarLivro(LivroBO.java:54)
at br.com.opet.persistence.LivroBO.SalvarLivro(LivroBO.java:48)
at br.com.opet.view.Principal.main(Principal.java:46)
Ou seja, o problema está justamente na hora de inserir os dados.
Estou fazendo alguma coisa errada? Eu fiz assim me baseando em tutoriais e exemplos que achei na net...mas não funfou...
Existe alguma outra forma de se fazer isso?
Desde já agradeço!
Carregando comentários...