[問題] ObjectOutputStream + ImageIO 出現的問題

看板java作者 (小安)時間14年前 (2009/12/30 21:34), 編輯推噓3(305)
留言8則, 2人參與, 最新討論串1/7 (看更多)
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)

12/30 22:22, , 1F
code 更新了,剛剛建立 Stream 的順序錯誤,會導致 deadlock
12/30 22:22, 1F

12/31 08:32, , 2F
ImageIO.read(in)改成(BufferedImage)in.readObject()
12/31 08:32, 2F

12/31 08:33, , 3F
試試看?
12/31 08:33, 3F

12/31 08:48, , 4F
BufferedImage 應該不能 Serialize 吧?
12/31 08:48, 4F

12/31 09:58, , 5F
我試試看弄個 class imp ser 存ImageIO write的byte[]
12/31 09:58, 5F

12/31 10:37, , 6F
12/31 10:37, 6F

12/31 10:38, , 7F
先說好, 所有意外狀況全部都沒有預防...
12/31 10:38, 7F

12/31 10:46, , 8F
這支可以 work, 感謝。 不過還是很好奇為什麼原本的會有問題
12/31 10:46, 8F
文章代碼(AID): #1BErRd-n (java)
討論串 (同標題文章)
文章代碼(AID): #1BErRd-n (java)