用java做了个WEB上传的组件,但是上传的文件在结尾都缺一点
代码如下:
private void saveFile(ServletInputStream in)
{
FileOutputStream fos = new FileOutputStream(savePath+"\\"+newFileName);
byte cache[] = new byte[4096];
do
{
loadLength = in.readLine(cache, 0, cache.length);
if(loadLength>0)
{
String tmp = new String(cache,0,loadLength); if(tmp.indexOf(flag)<0)
{
fos.write(cache,0,loadLength);
}
else
{
break;
}
}
}while(loadLength!=-1);
fos.flush();
fos.close();
}比如我上传一个1307KB的rar文件,他最后总是缺少不定长的数据,比如比源文件少23个byte长度
我用ue打开和原来的文件比较发现的.
改怎么解决啊
没分了给的少

解决方案 »

  1.   

    可能你的那个文件有23行.readLine读出一行但是不包括\r \n之类。 所以目标文件中丢的字符就是这些
      

  2.   

    我检查了,不是\r\n而是一些奇怪的字符
    比如文件为: 123456
    收到的是:   123
    我感觉是fileoutputstream没有把文件全部写入到硬盘上
    当我上传完成以后等个5秒钟在看文件就是全的,奇怪中
      

  3.   

    in.close
    out.close看看flush或者close的时候有没有异常?另外,用commons-upload多好阿