A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

C:\Users\帅帅\Desktop
  1. //用缓冲区对象完成一个对Mp3文件的拷贝
  2. import java.io.*;
  3. public class CopyMp3 {
  4.         public static void main(String[] args)
  5.         {
  6.                 copy_1();
  7.         }
  8.         public static void copy_1()
  9.         {
  10.                 FileOutputStream fos = null;
  11.                 FileInputStream fis = null;
  12.                 try
  13.                 {
  14.                         fos = new FileOutputStream("2.mp3");
  15.                         fis = new FileInputStream("1.mp3");
  16.                         BufferedOutputStream bufos = new BufferedOutputStream(fos);
  17.                         BufferedInputStream bufis = new BufferedInputStream(fis);
  18.                         int by = 0;
  19.                         while ((by =bufis.read())!=-1)
  20.                         {
  21.                                 bufos.write(by);
  22.                         }
  23.                 }
  24.                 catch (IOException e )
  25.                 {
  26.                         throw new RuntimeException("读写异常");
  27.                 }
  28.                 finally
  29.                 {
  30.                         if (fos!=null)
  31.                         {
  32.                                 try
  33.                                 {
  34.                                         fos.close();
  35.                                 }
  36.                                 catch (IOException e )
  37.                                 {
  38.                                         throw new RuntimeException("写入流关闭异常");
  39.                                 }
  40.                         }
  41.                         if (fis!=null)
  42.                         {
  43.                                 try
  44.                                 {
  45.                                         fis.close();
  46.                                 }
  47.                                 catch (IOException e )
  48.                                 {
  49.                                         throw new RuntimeException("读取流关闭异常");
  50.                                 }
  51.                         }
  52.                 }
  53.         }
  54. }
复制代码

7 个回复

倒序浏览
换了几个MP3文件都是同样的问题,复制下的问件都是少几k不等,
回复 使用道具 举报
话说为什么我的图片传不上来
回复 使用道具 举报
本人离这个程度还很远很远
回复 使用道具 举报
  1. int by = 0;
  2.                         while ((by =bufis.read())!=-1)
  3.                         {
  4.                                 bufos.write(by);//此处向bufos中写的是上面读取到的字节的个数int型,应该是一个byte型的
  5.                         }
复制代码


写错了
回复 使用道具 举报
beyondbao 发表于 2015-4-17 21:35
本人离这个程度还很远很远

好好学习,不会很远的
回复 使用道具 举报

在视频里边老师就是这么写的呀,我看后边的视频里边说到read的时候是从byte到int类型的提升,然后到写的时候write方法会自动将类型转换为byte,这个问题昨天晚上一次又一次的看视频对比又写了几次测试了几次,发现我在代码中写的调用close()的是fis/fos流对象,如果换成缓冲区对象bufis/bufos来调用close()就不会出现这种情况了
回复 使用道具 举报
wls 初级黑马 2015-8-21 01:38:18
8#
解决了吗??帮帮我  我不知道哪里出错了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马