GUJ
Notícias, artigos e o maior fórum brasileiro sobre Java
home
fórum
notícias
tópicos recentes
empregos
artigos
Bem-vindo ao GUJ.
Crie seu login
, ou digite-o para logar no site.
Usuário:
Senha:
Serialização / Zip
Índice dos Fóruns
»
Java Avançado
Autor
Mensagem
26/07/2009 10:27:20
Assunto:
Serialização / Zip
magnomp
JavaBaby
Membro desde: 21/07/2009 12:43:00
Mensagens: 77
Offline
Estou fazendo uns testes com relação a serialização com posterior compressão dos dados.
package teste; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import java.util.zip.ZipOutputStream; /** * * @author Magno */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) throws IOException, ClassNotFoundException { A a = new A(); a.x = 10; a.b = new B(); a.b.a = a; ByteArrayOutputStream baos = new ByteArrayOutputStream(); ZipOutputStream zos = new ZipOutputStream(baos); zos.putNextEntry(new ZipEntry("teste")); ObjectOutputStream oos = new ObjectOutputStream(zos); oos.writeObject(a); byte[] buf = baos.toByteArray(); ByteArrayInputStream bais = new ByteArrayInputStream(buf); ZipInputStream zis = new ZipInputStream(bais); zis.getNextEntry(); ObjectInputStream ois = new ObjectInputStream(zis); A a2 = (A)ois.readObject(); System.out.println(a2.x); System.out.println(a2 == a2.b.a); } } class A implements Serializable { int x; B b; } class B implements Serializable { A a; }
Mas estou recebendo o seguinte erro:
Exception in thread "main" java.io.EOFException: Unexpected end of ZLIB input stream at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:223) at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:141) at java.util.zip.ZipInputStream.read(ZipInputStream.java:146) at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2266) at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2279) at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2750) at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780) at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280) at teste.Main.main(Main.java:37)
Alguem aqui sabe o que fiz de errado?
This message was edited 1 time. Last update was at 26/07/2009 10:28:37
26/07/2009 11:13:24
Assunto:
Re:Serialização / Zip
magnomp
JavaBaby
Membro desde: 21/07/2009 12:43:00
Mensagens: 77
Offline
Faltou um close no ObjectOutputStream antes de ler o array de bytes... obrigado
26/07/2009 11:27:58
Assunto:
Re:Serialização / Zip
KWill
Virtual Machine Man
Membro desde: 18/09/2006 10:05:46
Mensagens: 609
Offline
Por mim, tá faltando chamar os métodos "closeEntry" e "finish" da classe "ZipOutputStream".
Inté.
"Só estou certo de que não possuo outras certezas" - KWill
"Não penso, mas Googlo, logo existo!" - Geração Copy-Cola
Índice dos Fóruns
»
Java Avançado
Ir para:
Selecione um Fórum
Notícias
Assuntos gerais (Off-topic)
MundoJ - Artigos, Notícias e Debates
Artigos e Tutoriais
Java Básico
Java Avançado
Ferramentas, Frameworks e Utilitários
Desenvolvimento Web
Interface Gráfica
Google Android e Java Micro Edition (ME)
Certificação Java
Persistência: Hibernate, JPA, JDBC e outros
Java Enterprise Edition (Java EE)
Frameworks e Bibliotecas brasileiros
RIA - Flex, JavaFX e outros
Arquitetura de Sistemas
Metodologias de Desenvolvimento e Testes de Software
JavaScript
Ruby & Ruby on Rails
Outras Linguagens
Powered by
JForum 2.1.8
©
JForum Team