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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马云 中级黑马   /  2012-3-21 11:32  /  2202 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 马云 于 2012-3-21 11:34 编辑

immport java.io.*;
//导入包,这里用到了两个包1)java.io.FileWriter 2)java.io.IOException
class FileWriterDemo{
public static void main(String[] args){
   
}

public static void copyFile(){
  Filewriter fw=null;
  FileReader fr=null;//创建读入写出对象的引用变量
  try{
   fw=new FileWriter("SystemDemo_copy.txt");
   fr=new FileReader("SystemDemo.java");
   //实例化读入写出对象。
   char[] buf=new char[1024];
//定义一个数组,用于装每次读出来的字符,
   int len=0;
//此变量为记录每次读出的数量,方便在写出时能够正确的写出所读到的长度而不是buf的长度
   try{
     while((len=fr.read(buf))!=-1){
      fw.write(buf,0,len);
     }
    }catch(IOException e){
     System.out.println("error");
    }finally{
//这里一盘是新手常出的错误,IO流的关闭动作也是要进行异常捕获的
     try{
      if(fw!=null)
       fw.close();
      if(fr!=null)
       fr.close();
     }catch(IOException e){
      System.out.println("close-Error!");
     }
    }
  }
}
}
实现原理图

5 个回复

倒序浏览
谢谢分享。加积分的时候给俺一分吧。我给分享了。然更多人知道。嘿嘿
回复 使用道具 举报
楼主的关闭流动作书写有误,如果fw流在关闭的时候出现了异常,就会直接执行catch里的内容,则fr流就关不掉了
需要对这两个关闭流分别try处理
最好这样写:

        finally
        {
                try
                {
                        if(fw!=null)
                                fw.close();
                }
                catch (IOException e)
                {
                        throw new RuntimeException("读取流关闭失败");
                }
                finally
                {
                        try
                        {
                                if(fr!=null)
                                        fr.close();
                        }
                        catch (IOException e)
                        {
                                throw new RuntimeException("写入流关闭失败");
                        }
                }
        }
回复 使用道具 举报
乔玉吉 发表于 2012-3-21 12:07
楼主的关闭流动作书写有误,如果fw流在关闭的时候出现了异常,就会直接执行catch里的内容,则fr流就关不掉了
...

分为0.5分啊,是我给你的机会啊
回复 使用道具 举报
看到楼主的名字 我顿时就蒙了
回复 使用道具 举报
马云 发表于 2012-3-21 14:59
分为0.5分啊,是我给你的机会啊

我也不容易啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马