2012-08-13 53 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