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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 格子、   /  2014-5-31 09:10  /  2447 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 格子、 于 2014-5-31 14:32 编辑

今天学到了IO的字节流,做一个复制MP3的例子,代码没错,但是抛出了RuntimeException异常:复制文件读写失败,这是什么情况?有木有遇到这种情况的,求解释?
  1. import java.io.*;
  2. class CopyMp3Demo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 //System.out.println("Hello World!");
  7.                 copyMp3();
  8.         }
  9.         public static void copyMp3()
  10.         {
  11.                 BufferedInputStream bis = null;
  12.                 BufferedOutputStream bop = null;
  13.                 try
  14.                 {
  15.                         bis = new BufferedInputStream(new FileInputStream("c:\\1.mp3 "));
  16.                         bop = new BufferedOutputStream(new FileOutputStream("c:\\2.mp3 "));
  17.                         byte[] by = new byte[1024];
  18.                         int len = 0;
  19.                         while((len=bis.read(by))!=-1)
  20.                                 bop.write(by,0,len);
  21.                 }
  22.                 catch (IOException e)
  23.                 {
  24.                         throw new RuntimeException("复制文件读写失败");
  25.                 }
  26.                 finally
  27.                 {        
  28.                         if(bis!=null)
  29.                         try
  30.                         {
  31.                                 
  32.                                 //关闭资源
  33.                                 bis.close();
  34.                         }
  35.                         catch (IOException e)
  36.                         {
  37.                                 throw new RuntimeException("复制文件读取关闭失败");
  38.                         }        
  39.                         if(bop!=null)
  40.                         try
  41.                         {
  42.                                 
  43.                                 //关闭资源
  44.                                 bop.close();
  45.                         }
  46.                         catch (IOException e)
  47.                         {
  48.                                 throw new RuntimeException("复制文件关闭关闭失败");
  49.                         }        
  50.                 }
  51.         }
  52. }
复制代码


评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 赞一个!

查看全部评分

8 个回复

倒序浏览
什么系统,我试过在D盘复制,是OK的,在C盘就读写错误,应该是权限的问题,我直接用Windows的复制把文件复制到C盘时都要提示提供管理员权限,我的是win8系统
回复 使用道具 举报
还有就是在复制的时候,确认是不是有其他进程在占用它,楼上说的是权限问题。
回复 使用道具 举报
月光海 发表于 2014-5-31 09:27
什么系统,我试过在D盘复制,是OK的,在C盘就读写错误,应该是权限的问题,我直接用Windows的复制把文件复 ...

我的是window7系统啊,这该怎么解决啊?
回复 使用道具 举报
↘ふ紫铯幽夢 发表于 2014-5-31 09:58
还有就是在复制的时候,确认是不是有其他进程在占用它,楼上说的是权限问题。 ...

肯定没有占用啦,应该是权限问题,不知道怎么解决呢,在XP下就没问题
回复 使用道具 举报
本帖最后由 ↘ふ紫铯幽夢 于 2014-5-31 11:08 编辑
格子、 发表于 2014-5-31 10:08
肯定没有占用啦,应该是权限问题,不知道怎么解决呢,在XP下就没问题

win7的话 ,右键mp3文件--->管理员取得所有权试试。
回复 使用道具 举报
↘ふ紫铯幽夢 发表于 2014-5-31 11:04
win7的话 ,右键mp3文件--->管理员取得所有权试试。

去的所有权试了,没有用还是报错。。。后来把控制台的权限提升了,就解决了,把控制台提升成管理员的模式就能操作了!!!
回复 使用道具 举报
格子、 发表于 2014-5-31 14:32
去的所有权试了,没有用还是报错。。。后来把控制台的权限提升了,就解决了,把控制台提升成管理员的模式 ...

对了想起来了。。。。
回复 使用道具 举报
代码没有问题,就是路径和权限的问题了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马