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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qmlovewhr 中级黑马   /  2013-7-12 16:15  /  879 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-7-12 17:44 编辑

import java.io.*;
class  CopyPic
{
public static void main(String[] args)
{
  FileOutputStream fos=null;
  FileInputStream fis=null;
  try
  {
   fos=new FileOutputStream("E:\091.jpg");
   fis=new FileInputStream("E:\092.jpg");
   byte[]buf=new byte[1024];
   int len=0;
   while((len=fis.read(buf))!=-1)
   {
    fos.write(buf,0,len);
   }
  }
  catch (IOException e)
  {
   throw new RuntimeException("复制文件失败");
  }
  finally
  {
   try
   {
    if(fis!=null)
     fis.close();
   }
   catch (IOException e)
   {
    throw new RuntimeException("读取文件失败");
   }
   try
   {
    if(fos!=null)
     fos.close();
   }
   catch (IOException e)
   {
    throw new RuntimeException("写入关闭失败");
   }
  }
}
}
我之前在E盘下放了一张名字叫091.jpg的图片,想在该目录下再复制一张,名字改为092.jpg,通过字节输入输出流的功能来实现,也进行了异常处理,后来编译通过,可运行之后报错了,报错内容如下:
Exception in thread "main" java.lang.RuntimeException: 复制文件失败
        at CopyPic.main(CopyPic.java:29)
我知道在第一次try时出现了错误,但不知道到底是第一次try中的哪句代码导致的问题,所以想请大家帮我看看。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

3 个回复

倒序浏览
文件路径改成"E:\\091.jpg"和"E:\\092.jpg"再试试
回复 使用道具 举报
应该是你把 fis 和fos 的关联写反了
fos=new FileOutputStream("E:\091.jpg");
    fis=new FileInputStream("E:\092.jpg");
让fos关联092.jpg fis关联091.jpg

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 qmlovewhr 于 2013-7-12 16:54 编辑
下雨天 发表于 2013-7-12 16:34
应该是你把 fis 和fos 的关联写反了
fos=new FileOutputStream("E:\091.jpg");
    fis=new FileInputStre ...

太对了,我居然把输入输出流搞反了,不过那个路径也有点问题,应该是E:\\091.jpg,少了转义符。呵呵!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马