作者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)
→ tkcn:code 更新了,剛剛建立 Stream 的順序錯誤,會導致 deadlock 12/30 22:22
推 ogamenewbie:ImageIO.read(in)改成(BufferedImage)in.readObject() 12/31 08:32
→ ogamenewbie:試試看? 12/31 08:33
→ tkcn:BufferedImage 應該不能 Serialize 吧? 12/31 08:48
推 ogamenewbie:我試試看弄個 class imp ser 存ImageIO write的byte[] 12/31 09:58
→ ogamenewbie:先說好, 所有意外狀況全部都沒有預防... 12/31 10:38
→ tkcn:這支可以 work, 感謝。 不過還是很好奇為什麼原本的會有問題 12/31 10:46