黑马程序员技术交流社区

标题: IO复制文件 报错 [打印本页]

作者: 包晗    时间: 2012-7-28 21:56
标题: IO复制文件 报错
本帖最后由 包晗 于 2012-7-28 22:44 编辑

  1. <P>import java.io.*;</P>
  2. <P>class CopyTest
  3. {
  4. public static void main(String[] agrs)throws IOException
  5. {
  6.   copy_2();
  7. }
  8. public static void copy_2()
  9. {
  10.   FileWriter fw= null;
  11.   FileReader fr= null;
  12.   try
  13.   {
  14.    fw = new FileWriter("systemDemo_copy1.txt");
  15.    fr = new FileReader("systemDemo.java");
  16.    char[] buf = new char[1024];
  17.    
  18.    int len = 0;
  19.    
  20.    while((len=fr.read(buf))!=-1)
  21.    {
  22.     fw.write(buf,0,len);
  23.    }</P>
  24. <P>
  25.   }
  26.   catch (IOException e)
  27.   {
  28.    throw new RuntimeException("读写失败");
  29.   }
  30.   finally
  31.   {
  32.    if(fr!=null)
  33.     try
  34.     {
  35.      fr.close();
  36.     }
  37.     catch (IOException e)
  38.     {
  39.     }
  40.    if(fw!=null)
  41.     try
  42.     {
  43.      fw.close();
  44.     }
  45.     catch (IOException e)
  46.     {
  47.     }</P>
  48. <P>  }
  49.   
  50. }
  51. public static void sop(Object obj)
  52. {
  53. System.out.println(obj);
  54. }
  55. }
  56. </P>
复制代码
为啥 运行时报错了
但是又有 空的systemDemo_copy1.txt 出现

PMKNT7OX@Y%OX3UDVONQ][2.jpg (15.41 KB, 下载次数: 36)

PMKNT7OX@Y%OX3UDVONQ][2.jpg

作者: 包晗    时间: 2012-7-28 21:57
沙发自己的,
在第一个 exception 抛出了  让我摸不着头脑
作者: 朱烈葵    时间: 2012-7-28 22:16
没问题啊,我运行挺正常的啊
作者: 任文杰    时间: 2012-7-28 22:17
楼主,你在你的工程目录下放一个文件名为systemDemo.java的文件就不会报错了。由于Fr是输入流,输入源要存在,如果不存在,jvm是不会为你创建一个的,会抛出你说的异常。再说输出流,输出流由于是往特定的文件中输出数据,jvm会自动创建一个和你程序文件名相同的文件。
作者: 朱烈葵    时间: 2012-7-28 22:22
找不出任何原因
作者: 王宝康    时间: 2012-7-28 22:32
你要复制的源文件不存在,会报告java.io.FileNotFoundException,至于为什么会出现空的systemDemo_copy1.txt ,是因为执行这个语句
fw = new FileWriter"systemDemo_copy1.txt")时,会在项目文件夹中生成这个文件
  1. package cn.study.ioOperation;

  2. import java.io.*;

  3. public class CopyTest {
  4.         public static void main(String[] agrs) throws IOException {
  5.                 copy_2();
  6.         }

  7.         public static void copy_2() {
  8.                 FileWriter fw = null;
  9.                 FileReader fr = null;
  10.                 try {
  11.                         fw = new FileWriter("systemDemo_copy1.txt");
  12.                         fr = new FileReader("systemDemo.java");
  13.                         char[] buf = new char[1024];

  14.                         int len = 0;

  15.                         while ((len = fr.read(buf)) != -1) {
  16.                                 fw.write(buf, 0, len);
  17.                         }
  18.                 } catch (IOException e) {
  19.                         System.out.println("这儿的异常");[color=Red]//你可以在这儿通过设置打印异常信息的方式查看异常信息[/color]
  20.                         e.printStackTrace();
  21.                 } finally {
  22.                         if (fr != null)
  23.                                 try {
  24.                                         fr.close();
  25.                                 } catch (IOException e) {
  26.                                 }
  27.                         if (fw != null)
  28.                                 try {
  29.                                         fw.close();
  30.                                 } catch (IOException e) {
  31.                                 }
  32.                 }

  33.         }


  34.         public static void sop(Object obj) {
  35.                 System.out.println(obj);
  36.         }
  37. }
复制代码

作者: 包晗    时间: 2012-7-28 22:43
额.....谢谢 大家了...
system.java  没存到同一个文件夹......
调了一晚上,真心感谢...




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