2012-08-13 46 views
1

我正在使用我的項目netty-3.5.3.Final來傳輸文件。不幸的是,有時我得到錯誤的數據。例如,我正在下載1 GB的文件大小。收到文件後包含5個「錯誤」。所有錯誤都會影響單個字節。這是一個「邏輯」的變化enter image description hereJava Netty數據中斷

Ë -> ë (CB -> EB) C+2 = E 
À -> à (C0 -> E0) C+2 = E 
Ú -> ú (DA -> FA) D+2 = F 
œ -> ¼ (9C -> BC) 9+2 = B 
-> $ (04 -> 24) 0+2 = 2 
e.t.c. 
(Not every Ë becomes ë, only ~1/100000000...000..) 

獲取文件的過程:

ChannelBuffer buf = (ChannelBuffer) e.getMessage(); //SimpleChannelHandler.messageReceived(...).. 
ByteBuffer bbuf = buf.toByteBuffer(); 
RandomAccessFile bos = new RandomAccessFile(...,"rw"); 
bos.write(bbuf.array(), 0, bbuf.position()); 
bos.close(); 

數據不受到任何的變化。爲什麼會發生?

+0

你知道什麼是[SSCCE(http://sscce.org/)是什麼? – oldrinb 2012-08-14 00:30:19

回答

1

我認爲你的寫代碼是錯誤的。

你能試試這個:

ChannelBuffer buf = ... 
OutputStream out = new FileOutputStream(...) 
buf.readBytes(out, buf.readableBytes()); 
out.close(); 
+0

看起來像是有效的。但是,在我的情況下,錯誤? – user1221483 2012-08-14 14:27:41