while(true) {
byte [] b = new byte[1024];//堵塞处,此语句会导致IOException 异常
int n = di.read(b);
if(n<1)
break;
os.write(b,0,n);
if(n<1024)break;//加这句试试看
}
byte [] b = new byte[1024];//堵塞处,此语句会导致IOException 异常
int n = di.read(b);
if(n<1)
break;
os.write(b,0,n);
if(n<1024)break;//加这句试试看
}
byte [] b = new byte[1024];//堵塞处,此语句会导致IOException 异常
int n = di.read(b);
if(n<1)
break;
os.write(b,0,n);
}换成下面的试试
byte [] b = new byte[1024];//堵塞处,此语句会导致IOException 异常
int n = di.read(b);
os.write(b,0,n);还有,可以使用缓冲流来读,这样好一点
if(n<1024)break;会导致信息没读完就返回to CoolAbu(阿卜-Never Stop(★★★★)) :
不用循环读的话,文件大时次数就太多,这里还有指定读取长度
我已经用了缓冲,不用缓冲也一样。to OnlyLikeJava(甜咖啡):
增大数组没用,还是堵塞
谢谢各位高手,还有什么原因吗?
改称:
buf = new byte[n];
System.arraycopy(b, 0, buf, 0, n);
//然后吧buf,ArrayList链起来,最后把ArrayList转化成一个byte[]