/*
* 缓冲区的出现时为了提高流的操作效率而出现的* 所以在创建缓冲区之前,必须先有流对象
*
* 缓冲区特有方法(跨平台):newLine() 换行
* */
import java.io.*;
public class BufferedWriterDemo1 {
/**
* @param args
*/
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
//创建一个字符写入流对象
FileWriter fw=new FileWriter("e:\\demo3.txt");
//忽略以下三行:仅测试
//fw.write("ccddd");//写完之后记得flush或者close.
//fw.flush();
//fw.close();
// 两个构造函数(都是带参):BufferedWriter(Writer out) BufferedWriter(Writer out, int sz)
//缓冲技术原理:先把数据攒起来。为了提高字符写入流效率。
//只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可
BufferedWriter bufw=new BufferedWriter(fw);//必须和流相关联,就比如reader类,必须硬盘要有对应的文件
for(int x=0;x<5;x++){
bufw.write("abcde"+x);//此时e:\\demo3.txt目标是没有数据的,"abcde"暂时存到了缓冲区bufw里
//BufferedWriter也是writer的子类,所以也可以使用writer的方法
bufw.newLine();//换行:跨平台的 \r\n
//记住:只要用到缓冲区,就要记得刷新。
bufw.flush();//其实这个flush也可以写在循环外面(等全部写完存起来再刷),但是为了在循环写的过程突然断电,才这么写的
}
bufw.close();//缓冲区的关闭,其实就是关闭它所要提高效率的流对象,这里是fw,因为真正调用底层资源的是new FileWriter("e:\\demo3.txt");
//fw.close()不需要写。
}
}