Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Deise Vicky

[Resolvido] Criando arquivos binários (.dat)

Recommended Posts

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está serializando um objeto. Pra que isso seja possível sua classe br.com.opet.model.Livro tem que implementar a interface Serializable de "java.io".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está serializando um objeto. Pra que isso seja possível sua classe br.com.opet.model.Livro tem que implementar a interface Serializable de "java.io".

 

Ok, vou tentar fazer isso, qualquer problema posto aqui novamente.

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.