黑马程序员技术交流社区

标题: 【欢迎大家来找茬】 [打印本页]

作者: 班志国    时间: 2012-10-13 19:41
标题: 【欢迎大家来找茬】
本帖最后由 班志国 于 2012-10-21 08:52 编辑
  1. import java.io.*;
  2. class Copy
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 copy();
  7.         }
  8.         public static void copy()
  9.         {
  10.                 FileReader fr=null;
  11.                 FileWriter fw=null;
  12.                 try
  13.                 {
  14.                         fw=new FileWriter("333.txt");
  15.                         fr=new FileReader("File.java");
  16.                         
  17.                         char[] buf=new char[1024];
  18.                         int num=0;
  19.                         while((num=fr.read(buf))!=-1)
  20.                         {
  21.                                 fw.write(buf,0,num);
  22.                                 
  23.                         }
  24.                 }catch(IOException e)
  25.                         {
  26.                                 throw new RuntimeException("读写失败");
  27.                                 //System.out.println(e.toString());
  28.                         }
  29.                         finally
  30.                         {
  31.                                 if(fr!=null)
  32.                                 try{
  33.                                 
  34.                                 fr.close();}
  35.                                 catch(IOException e){System.out.println(e.toString());}
  36.                                 
  37.                                 if(fw!=null)
  38.                                 try{
  39.                                 
  40.                                 fw.close();}
  41.                                 catch(IOException e){System.out.println(e.toString());}
  42.                         }
  43.         }
  44. }
  45. //编译通过 但没拷贝成功 欢迎 大家找错
复制代码

作者: 杨华东    时间: 2012-10-13 19:49
  1. import java.io.*;
  2. class Copy
  3. {
  4. public static void main(String[] args)
  5. {
  6. copy();
  7. }
  8. public static void copy()
  9. {
  10. FileReader fr=null;
  11. FileWriter fw=null;
  12. try
  13. {
  14. fw=new FileWriter("333.txt");
  15. fr=new FileReader("File.java");

  16. char[] buf=new char[1024];
  17. int num=0;
  18. while((num=fr.read(buf))!=-1)
  19. {
  20. fw.write(buf,0,num);

  21. }
  22. }catch(IOException e)
  23. {
  24. throw new RuntimeException("读写失败");
  25. //System.out.println(e.toString());
  26. }
  27. finally
  28. {
  29. if(fr!=null)
  30. try{

  31. fr.close();}
  32. catch(IOException e){System.out.println(e.toString());}

  33. if(fw!=null)
  34. try{

  35. fw.close();}
  36. catch(IOException e){System.out.println(e.toString());}
  37. }
  38. }
  39. }
  40. //编译通过 但没拷贝成功 欢迎 大家找错
复制代码
你的待拷贝文件  根本不存在  那你说怎么可能不报错呢??
自己测试一哈 就出来了

作者: 班志国    时间: 2012-10-13 19:53
杨华东 发表于 2012-10-13 19:49
你的待拷贝文件  根本不存在  那你说怎么可能不报错呢??
自己测试一哈 就出来了
...

不是 这个 问题  都存在的
作者: 王震阳老师    时间: 2012-10-13 19:57
  1. /*
  2. 修改后的代码,只改动了两个地方,已经百试不爽,请楼主查阅。
  3. */
  4. import java.io.*;
  5. class Copy
  6. {
  7.         public static void main(String[] args)
  8.         {
  9.                 copy();
  10.         }
  11.         public static void copy()
  12.         {
  13.                 FileReader fr=null;
  14.                 FileWriter fw=null;
  15.                 try
  16.                 {
  17.                         
  18.                         fr=new FileReader("Copy.java");////////////问题应该出现在这里,程序没有在当前目录下找到你以前的文件,我修改成Copy.java编译运行皆OK。
  19.                         fw=new FileWriter("333.txt");/////////////应该先读后写。循序颠倒一下就行了。
  20.                         char[] buf=new char[1024];
  21.                         int num=0;
  22.                         while((num=fr.read(buf))!=-1)
  23.                         {
  24.                                 fw.write(buf,0,num);
  25.                                 
  26.                         }
  27.                 }catch(IOException e)
  28.                         {
  29.                                 throw new RuntimeException("读写失败");
  30.                                 //System.out.println(e.toString());
  31.                         }
  32.                         finally
  33.                         {
  34.                                 if(fr!=null)
  35.                                 try{
  36.                                 
  37.                                 fr.close();}
  38.                                 catch(IOException e){System.out.println(e.toString());}
  39.                                 
  40.                                 if(fw!=null)
  41.                                 try{
  42.                                 
  43.                                 fw.close();}
  44.                                 catch(IOException e){System.out.println(e.toString());}
  45.                         }
  46.         }
  47. }
复制代码

作者: 王震阳老师    时间: 2012-10-13 20:02
杨华东 发表于 2012-10-13 19:49
你的待拷贝文件  根本不存在  那你说怎么可能不报错呢??
自己测试一哈 就出来了
...

这也不是问题,在人家的电脑上可能有那个文件的。顺序有点问题。
作者: qhasilver    时间: 2012-10-13 20:51
程序没有问题,测试是通过的。自己检查源文件跟目标文件是不是搞反了。
还有一个可能出现的问题就是,你执行的时候在命令行应该是 java Copy
建议把class Copy改成public class Copy




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