作者tkcn (小安)
看板java
标题[问题] ObjectOutputStream + ImageIO 出现的问题
时间Wed Dec 30 21:34:29 2009
code 在此:
http://paste.plurk.com/show/121038/
Server 端将 BufferedImage 利用 ImageIO 写入 ObjectOutputStream,
Client 端则是用 ImageIO 从 ObjectInputStream 读 BufferedImage。
现在的问题是,第 1 张图片可以正常接收,
但是在第 1 张图的资料结束後,还会有 16 个 byte 的... (header?)
所以 ImageIO 就没有办法正确读进第 2 张图 。
BufferedImage image = ImageIO.read(in); // image 为 null
如果我把 client 端被注解那段加进去,就可以正常跑到结束。
请问一下这问题应该怎麽解决 Orz
ps.
我知道目前这个例子不需要用 Object...Stream,
也知道不用 Object...Stream 就不会遇到这问题,
但是我真正要写的程式有需要用到。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.160.117
※ 编辑: tkcn 来自: 220.132.160.117 (12/30 22:21)
1F:→ tkcn:code 更新了,刚刚建立 Stream 的顺序错误,会导致 deadlock 12/30 22:22
2F:推 ogamenewbie:ImageIO.read(in)改成(BufferedImage)in.readObject() 12/31 08:32
3F:→ ogamenewbie:试试看? 12/31 08:33
4F:→ tkcn:BufferedImage 应该不能 Serialize 吧? 12/31 08:48
5F:推 ogamenewbie:我试试看弄个 class imp ser 存ImageIO write的byte[] 12/31 09:58
7F:→ ogamenewbie:先说好, 所有意外状况全部都没有预防... 12/31 10:38
8F:→ tkcn:这支可以 work, 感谢。 不过还是很好奇为什麽原本的会有问题 12/31 10:46