看板 java 關於我們 聯絡資訊
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:http://paste.plurk.com/show/121974/ 試試看? 12/31 10:37
ogamenewbie:先說好, 所有意外狀況全部都沒有預防... 12/31 10:38
tkcn:這支可以 work, 感謝。 不過還是很好奇為什麼原本的會有問題 12/31 10:46