黑马程序员技术交流社区

标题: 复制一个文件里面没有内容怎么办? [打印本页]

作者: 思维    时间: 2014-8-1 10:16
标题: 复制一个文件里面没有内容怎么办?
本帖最后由 思维 于 2014-8-2 10:03 编辑

今天我把一个内容为“ABCD"的文件a.txt复制到G盘的b.java中,文件最后复制成功了,可是里面没有内容!这是为什么?文件复制没有产生内容的原因有几种啊!代码如下:
  1. import java.io.*;
  2. class CopyDemo{
  3.         public static void main(String[] args){
  4.                 FileWriter fw=null;
  5.                 FileReader fr=null;
  6.                 try{
  7.                         fw=new FileWriter("G:\\b.java");
  8.                         fr=new FileReader("a.txt");
  9.                         char[] buf=new char[1024];
  10.                         int len=0;
  11.                         while((len=fr.read())!=-1){
  12.                                 fw.write(buf,0,len);
  13.                         }                        
  14.                 }
  15.                 catch(Exception e){
  16.                         throw new RuntimeException("读取失败");
  17.                 }
  18.                 finally{
  19.                         if(fr!=null)
  20.                                 try{
  21.                                         fr.close();
  22.                                         System.out.println("aaa");
  23.                                 }
  24.                                 catch(IOException e){}
  25.                         if(fw!=null)
  26.                                 try{
  27.                                         fw.close();
  28.                                 }
  29.                                 catch(IOException e){}
  30.                 }
  31.         }
  32. }
复制代码

作者: 从未有过的晴天    时间: 2014-8-1 10:34
while((len=fr.read())!=-1){
                                fw.write(buf,0,len);
                        }
应该是  len=fr.read(buf)
作者: star5603    时间: 2014-8-1 10:57
你试着在while里吗flush下
作者: Peach2014    时间: 2014-8-1 11:33
你看看你的buf,你都不曾改变过它的值,你去读它,它肯定为空了!
作者: 裤裆里的温柔、    时间: 2014-8-1 12:31
(len=fr.read())这行错咯,应该读到数组里的,
作者: 思维    时间: 2014-8-2 10:03
目测错的还真不少!:D
作者: 禅伤    时间: 2014-8-2 11:22
我也老范这个错误,复制的文件里都是乱七八糟的东西。就是
(len=fr.read())这行




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