黑马程序员技术交流社区

标题: 缓冲区 [打印本页]

作者: 滴水石穿    时间: 2014-12-18 21:55
标题: 缓冲区
/*
* 写一个带有缓冲区的流
* 缓冲区的出现时为了提高流的操作效率而出现的。
* 所以在创建缓冲区之前要先创建流对象               
*/

public class BufferedWriterDemo {

        public static void main(String[] args) throws IOException {
               
//                创建一个字符输入流对象
                FileWriter fw = new FileWriter("c:\\Demo.txt");
               
//                为了提高流效率假如了缓冲技术。
//                只要将需要提高效率的流对象作为参数传给缓冲区的构造函数即可。
                BufferedWriter bw = new BufferedWriter(fw);
               
                bw.write("zhangsan");
               
//                记住只要用到缓冲区就要刷新
                bw.flush();
               
//                关闭资源
                fw.close();
               
               
        }
}

如果是读文件要不要加上缓冲区读 ?
FileReader fr = new FileReader("c:\\Demo.java");
作者: 牧歌    时间: 2014-12-18 22:05
不太懂。。。。
作者: 奋斗的蜗牛ksd    时间: 2014-12-19 13:14
写 ,你已经写入到硬盘上去了,想用什么方法读取 都可以。
作者: 奋斗的蜗牛ksd    时间: 2014-12-19 13:18
唯一 需要 读取 和写入 流 一致的 可能是 对象的序列化 使用到的流

ObjectOutputStream序列化操作写入到硬盘的对象,

只能通过 ObjectInputStream 流读取,
作者: duluhua    时间: 2014-12-19 13:44
我认为是有必要的,我打个比喻来说下我对缓冲区的理解。
从A地向B地搬砖:
1.一般情况是:我们从A地搬起一块砖,然后送到B地,如此反复。
2.缓冲区的情况是: 我们从A地搬起一块砖放到车上,撞到一定数量,然后把车拉到B地
在这里这个车应该就是缓冲区,把数据积攒到一起,然后一次性运到目的地

再回到你的问题,读写文件应该类似于搬砖的过程吧,从一个地方到另一个地方。所以我认为加上缓冲区是有用的,可以大大提高效率。在数据少的情况下可能不明显,但是一旦大量数据,其好处应该就体现出来了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2