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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 思维 高级黑马   /  2014-8-1 10:16  /  851 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 思维 于 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. }
复制代码

6 个回复

倒序浏览
while((len=fr.read())!=-1){
                                fw.write(buf,0,len);
                        }
应该是  len=fr.read(buf)
回复 使用道具 举报 1 0
你试着在while里吗flush下
回复 使用道具 举报
你看看你的buf,你都不曾改变过它的值,你去读它,它肯定为空了!
回复 使用道具 举报
(len=fr.read())这行错咯,应该读到数组里的,
回复 使用道具 举报
目测错的还真不少!:D
回复 使用道具 举报
我也老范这个错误,复制的文件里都是乱七八糟的东西。就是
(len=fr.read())这行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马