OutputStream write文件比原來的大

在server端使用out.write(buffer, 0, byteRead);
在client端獲取後使用out.write(buffer);寫出來的文件會比源文件大,而且大小不太固定.
如果我在client也換成out.write(buffer, 0, byteRead);則完全沒問題.
求教.
API上是說write(byte[] b)也是寫入的b.length個字節.難道是這裏的問題?如果是應該也不會大得這麼離譜吧,我源文件是3M多,寫出來後有時候是4M,有時是5M不等.

難道它是在inStream.read(buffer)的時候就有可能沒有讀滿buffer.length個長度?



public int read(byte[] b) throws IOException
從輸入流中讀取一定數量的字節,並將其存儲在緩衝區數組 b 中。以整數形式返回實際讀取的字節數。
"實際讀取的字節數"會小於b.length
一般是
int i=in.read(buffer);
out.write(buffer,0,i);

http://topic.csdn.net/u/20120204/10/5cf85a79-ec88-447b-9616-61e30dbba9aa.html?31635

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章