java 数据缓存问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 15:34:45
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(),试试吧

文件结束符自动会丢弃后面无用的数据流.

你先求出read读出数据的长度,in.read返回以个int类型的长度,然后new String(b,0,len) b是byte ,0是从第一个下标开始读,len是你求出数据的长度