黑马程序员技术交流社区
标题:
通过字节流对象复制一个MP3文件,复制下的文件总是少了几k
[打印本页]
作者:
帅帅loyal
时间:
2015-4-17 21:23
标题:
通过字节流对象复制一个MP3文件,复制下的文件总是少了几k
C:\Users\帅帅\Desktop
//用缓冲区对象完成一个对Mp3文件的拷贝
import java.io.*;
public class CopyMp3 {
public static void main(String[] args)
{
copy_1();
}
public static void copy_1()
{
FileOutputStream fos = null;
FileInputStream fis = null;
try
{
fos = new FileOutputStream("2.mp3");
fis = new FileInputStream("1.mp3");
BufferedOutputStream bufos = new BufferedOutputStream(fos);
BufferedInputStream bufis = new BufferedInputStream(fis);
int by = 0;
while ((by =bufis.read())!=-1)
{
bufos.write(by);
}
}
catch (IOException e )
{
throw new RuntimeException("读写异常");
}
finally
{
if (fos!=null)
{
try
{
fos.close();
}
catch (IOException e )
{
throw new RuntimeException("写入流关闭异常");
}
}
if (fis!=null)
{
try
{
fis.close();
}
catch (IOException e )
{
throw new RuntimeException("读取流关闭异常");
}
}
}
}
}
复制代码
作者:
帅帅loyal
时间:
2015-4-17 21:27
换了几个MP3文件都是同样的问题,复制下的问件都是少几k不等,
作者:
帅帅loyal
时间:
2015-4-17 21:34
话说为什么我的图片传不上来
作者:
beyondbao
时间:
2015-4-17 21:35
本人离这个程度还很远很远
作者:
major2015
时间:
2015-4-17 22:16
int by = 0;
while ((by =bufis.read())!=-1)
{
bufos.write(by);//此处向bufos中写的是上面读取到的字节的个数int型,应该是一个byte型的
}
复制代码
写错了
作者:
帅帅loyal
时间:
2015-4-18 10:12
beyondbao 发表于 2015-4-17 21:35
本人离这个程度还很远很远
好好学习,不会很远的
作者:
帅帅loyal
时间:
2015-4-18 10:20
major2015 发表于 2015-4-17 22:16
写错了
在视频里边老师就是这么写的呀,我看后边的视频里边说到read的时候是从byte到int类型的提升,然后到写的时候write方法会自动将类型转换为byte,这个问题昨天晚上一次又一次的看视频对比又写了几次测试了几次,发现我在代码中写的调用close()的是fis/fos流对象,如果换成缓冲区对象bufis/bufos来调用close()就不会出现这种情况了
作者:
wls
时间:
2015-8-21 01:38
解决了吗??帮帮我 我不知道哪里出错了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2