今天在做下载模块时,在网上down了一个用来下载.
结果下载下来的文件各种比原来的文件大,图片各种超帧 失帧 mp3放完一遍又来半段.. 郁闷半天
最后发现是真实数据不足 4*1024 从而导致读到的后面有一大部分空数据,所以会显示文件损坏
原先代码
while((input.read(buffer))!=-1){
output.write(buffer);
}
修改之后代码
int len = -1;
while ((len = input.read(buffer)) != -1) {
output.write(buffer, 0, len); // 在这里使用另一个重载,防止流写入的问题.
}