黑马程序员技术交流社区
标题:
为什么我复制一个MP3后的比原来打了,但是播放都一样啊?
[打印本页]
作者:
yjsf216
时间:
2015-3-7 23:08
标题:
为什么我复制一个MP3后的比原来打了,但是播放都一样啊?
本帖最后由 yjsf216 于 2015-3-8 01:43 编辑
public class copyMP3{
public static void main(String[] args){
BufferedInputStream bufis = null;
BufferedOutputStream bufos = null;
try{
bufis= new BufferedInputStream(new FileInputStream("a.mp3"));
bufos= new BufferedOutputStream(new FileOutputStream("b.mp3"));
byte[] buf= new byte[1024*5];
int len= 0;
while((len=bufis.read(buf))!=-1){
bufos.write(buf);
}
}
catch(IOException e){
System.out.println("dqcw");
}
finally{
try{
bufis.close();
bufos.close();
}
catch(IOException e){
}
}
}
}
复制代码
为什么我复制一个MP3后的比原来打了,但是播放都一样啊?
作者:
jamesli
时间:
2015-3-7 23:29
如果内容不是正好符合字节数组buf的长度的整数倍,那么最后一次读取len个字节到字节数组时,但len个字节后面,仍然有上次读取的字节未覆盖,而第13行 bufos.write(buf);执行的是写入整个字节数组内容,因此,最后一次未覆盖的内容也写进去了。第13行应改为:bufos.write(buf,0,len);
作者:
yjsf216
时间:
2015-3-8 01:43
jamesli 发表于 2015-3-7 23:29
如果内容不是正好符合字节数组buf的长度的整数倍,那么最后一次读取len个字节到字节数组时,但len个字节后 ...
受教 了,欠考虑
作者:
浦原氏之喵
时间:
2015-3-8 16:11
赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2