黑马程序员_BufferedReader和BufferedWriter的应用

本文介绍了一个使用Java进行文件复制的方法,通过BufferedReader和BufferedWriter实现高效的数据读写操作。文章详细展示了如何从源文件读取数据并将其写入目标文件,同时提供了完整的异常处理流程。
------- android培训java培训、期待与您交流! ----------

package cn.javastudy.p10.io.demo;

import java.io.*;

/*
 * 读取源文件
 * 把读取的源文件写到目标文件
 */
public class CopyExpression {
 public static void main(String[] args) {
  copyData("d:\\demo.txt","E:\\demo.txt");
 }

 public static void copyData(String res, String des) {
  FileReader fr=null;
  BufferedReader bfr=null;
  FileWriter fw=null;
  BufferedWriter bfw=null;
  try {
   fr=new FileReader("D:\\demo.txt");
   fw=new FileWriter("E:\\demo.txt");
   bfr=new BufferedReader(fr);
   bfw=new BufferedWriter(fw);
   String line=null;
   while((line=bfr.readLine())!=null)
   {
    bfw.write(line);
    bfw.newLine();
    bfw.flush();
   }
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   System.out.println(e.getMessage());
  } catch (IOException e) {
   // TODO Auto-generated catch block
   System.out.println(e.getMessage());
  }finally{
   if(fr!=null)
    try {
     fr.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     System.out.println(e.getMessage());
    }
   if(fw!=null)
    try {
     fw.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     System.out.println(e.getMessage());
    }
  }
  
  
 }
}
在此实例中为什么不调用字符缓冲区的关闭,而是调用字符流对象FileReader和FileWriter对象的关闭,是因为,有可能这两个对象在创建时发生异常,倒至下面的BufferedReader和BufferedWriter对象没法如始化,如果调用了字符缓冲区的关闭时,有可能发生PrinterException异常,再有的就是字符缓冲区的BufferedReader和BufferedWriter的Close方法调用的也底层的关闭.因此在这个程序中调用底层的关闭比较合适.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值