java 中简单的IO流(二)

来源:互联网 发布:淘宝最贵的商品 编辑:程序博客网 时间:2024/04/30 23:31

今天我们一起简单的总结一下缓冲流,今天着重看一下BufferReader   和BufferWriter这两个缓冲流。我们知道BufferReader是缓冲流,那么何为缓冲流,效率如何提高呢?BufferReader中有一个字符数组缓冲区,这个字符缓冲区有默认缓冲大小,或者你可以指定缓冲区的大小。当程序运行时,会启动IO操作,将源中的数据读取出来,一次将缓冲区读满。当我们进行其他操作时,读取到一个字符数组,读取一行等。都是读取的是缓冲区的内容。当缓冲区的内容不够读取时,这时在启动IO操作,将读完的的数据在重新填充。这样减少IO操作,提高效率。同时BufferWrite也是将缓冲区填满后,然后自动开启IO操作。

1.BufferReader和BuffereWrite的常用用法:

        public class TestBufferedReader {

public static void main(String[] args) {

//read();

try {
BufferedWriter bw = new BufferedWriter(
new FileWriter(
new File("e:/io/a.txt")));

String msg="你好";
bw.write(msg);
String msg2="范冰冰";
                        
                        /*****
                          bw的这几个write是将这些数据填充到
                          内存缓冲区中,只有缓冲区满了,才开启
                          IO操作,或者调用flush()自动开启IO操作
                        ********/
bw.write(msg2);//将数据填充到缓冲区
bw.newLine();
bw.write(msg2);
bw.write(msg2);
bw.newLine();  //写入空的换行
bw.write(msg2);



bw.flush(); //刷新缓冲区
bw.close();


} catch (Exception e) {
// TODO: handle exception
}

}

private static void read() {
try {
//减少了IO的读写次数,提高效率(一次可以将整个缓冲区填满)
BufferedReader br = new BufferedReader(
new FileReader(
new File("e:/io/a.txt")));

String line="";
//打印缓冲区中的内容
while((line=br.readLine())!=null)
{
System.out.println(line);
}

} catch (Exception e) {
// TODO: handle exception
}
}


}

0 0
原创粉丝点击