黑马程序员技术交流社区

标题: 帮我看下,谢谢 [打印本页]

作者: qmlovewhr    时间: 2013-7-12 16:15
标题: 帮我看下,谢谢
本帖最后由 杨兴庭 于 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中的哪句代码导致的问题,所以想请大家帮我看看。

作者: denghui1010    时间: 2013-7-12 16:32
文件路径改成"E:\\091.jpg"和"E:\\092.jpg"再试试
作者: 下雨天    时间: 2013-7-12 16:34
应该是你把 fis 和fos 的关联写反了
fos=new FileOutputStream("E:\091.jpg");
    fis=new FileInputStream("E:\092.jpg");
让fos关联092.jpg fis关联091.jpg
作者: qmlovewhr    时间: 2013-7-12 16:51
本帖最后由 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,少了转义符。呵呵!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2