java 数据缓存问题

byte [] buf = new byte [512000];
while((in.read(buf,0,512000)) !=-1)
{
out.write(buf); (out输出流)

}

这样那么传到文件的最后一个buf里面可能有空数据流,要怎么解决?
可是我传一个2k,会收到50K的

在read之前,用in.available()获取要传送文件的大小,假设存入m中。然后再用out.write(b,0,m)就可以了;但应定要在读之前用m=in.available(),试试吧
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-17
文件结束符自动会丢弃后面无用的数据流.
第2个回答  2009-03-18
你先求出read读出数据的长度,in.read返回以个int类型的长度,然后new String(b,0,len) b是byte ,0是从第一个下标开始读,len是你求出数据的长度

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网