黑马程序员——BufferedReader,BufferedWriter介绍及复制文本文件

                                          ----------------------     android培训      java培训   期待与您交流!    ----------------------   
                  

package com.io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class BufferedWriter_Reader_class {
	public static void main(String[] args) {
		//bufferedWriter();
		//bufferedReader();
		copy_buffered();//用缓冲区复制文本文件
	}
	/**
	 * 缓冲区的出现是为了提高流的操作效率而出现的,
	 * 所以在创建缓冲区之前,必须要先有流对象
	 * 该缓冲区中提供了一个跨平台的换行符,在Windows和Linux系统下都可以:newLine();
	 * @author wjw
	 *
	 */
	public static void bufferedWriter(){
		FileWriter fw=null;
		BufferedWriter bw=null;
		try{
			//创建一个字符写入流对象
			fw=new FileWriter("g:\\java\\yes.txt");
			//为了提高字符写入流效率,加入了缓冲技术
			//只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可
			bw=new BufferedWriter(fw);
			for (int i = 0; i < 5; i++) {
				bw.write("fdasfdsjafk;ldsakfl;djs......"+i);
				bw.newLine();//换行,其实里面就是封装了在Windows系统下:“\r\n”,在linux系统下:“\n”
				bw.flush();//记住,只要用到缓冲区,就要记住刷新,这里循环依稀刷新一次,防止突然断电,因为缓冲区就是在内存中,这样防数据丢失
			}
		}catch(IOException e){
			e.printStackTrace();
		}finally{
			try{
				if(null!=bw){
					bw.close();//缓冲区的存在只是提高效率,真正操作数据的还是FileWriter对象,所以这里关闭的还是FileWriter对象
					//其实关闭缓冲区,就是在关闭缓冲区中的流对象
				}
			}catch(IOException e){
				e.printStackTrace();
			}
		}
	}
	public static void bufferedReader(){
		FileReader fr=null;
		BufferedReader br=null;
		try{
			fr=new FileReader("g:\\java\\yes.txt");
			br=new BufferedReader(fr);
			//System.out.println(br.readLine());//当读到文件末尾时,返回null
			String str=null;
			while(null!=(str=br.readLine())){//循环读取数据
				System.out.println(str);
			}
			
		}catch(IOException e){
			e.printStackTrace();
		}finally{
			try{
				if(null!=br){
					br.close();
				}
			}catch(IOException e){
				e.printStackTrace();
			}
		}
	}
	//通过缓冲区复制文本文件
	public static void copy_buffered(){
		FileReader fr=null;
		FileWriter fw=null;
		BufferedReader br=null;
		BufferedWriter bw=null;
		try{
			fr=new FileReader("g:\\java\\Break_Continue.java");
			br=new BufferedReader(fr);
			fw=new FileWriter("g:\\java\\yes.txt");
			bw=new BufferedWriter(fw);
			String str=null;
			while(null!=(str=br.readLine())){//readLine()方法只是返回回车符之前的内容,并不返回回车符
				bw.write(str);
				bw.newLine();
				bw.flush();//每次循环刷新
			}
		}catch(IOException e){
			e.printStackTrace();
		}finally{
			try{
				if(null!=br){
					br.close();
				}
				if(null!=bw){
					bw.close();
				}
			}catch(IOException e){
				e.printStackTrace();
			}
		}
	} 
}

                                          ----------------------     android培训      java培训   期待与您交流!    ----------------------   
                         详细请查看       http://edu.csdn.net/heima


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

King·Forward

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值