黑马程序员技术交流社区

标题: 关于缓冲的疑点 [打印本页]

作者: 沈浩    时间: 2013-4-16 15:58
标题: 关于缓冲的疑点
本帖最后由 沈浩 于 2013-4-29 17:23 编辑

BufferedReader 和BufferedInputStream 我知道实现的原理
但是BufferedWritrer和BufferedOutputStream具体实现过程是怎样的呢?
怎样自定义一个呢?
望高手们回答的详尽点。多谢啦!!!
作者: 付鑫鑫    时间: 2013-4-27 08:53
//第一种方式:读写文件,是从硬盘--读到内存----再写到硬盘里的
//第二种方式:Buffered(缓冲区)是:从硬盘---读到缓冲区----再读到内存里---再写到缓冲区里----再写到硬盘里.只是起到一个过度的作用,只是是觉得很麻烦,呵呵.
//是这样的,因为,从硬盘直接读取到内存很慢,而从缓冲区读到内存很快.
//或许你又会问,不还是要从硬盘读到缓冲区么?不也慢么?是这样的,缓冲区,一次性就从硬盘读取8192个字节,所以....
package net.edu.csdn.forum;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Demo2 {
        public static void main(String[] args) throws Exception {
                BufferedInputStream bis = new BufferedInputStream(new FileInputStream("a.txt"));                        //创建缓冲输入流对象,并与文件输入流相关联
                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("b.txt"));                        //创建缓冲输出流对象,并与文件输出流相关联
                int b;
                while((b = bis.read()) == -1) {                                                                                                                                // read()读取一个字节时, 其实已经读取8192个字节到缓冲区了
                        bos.write(b);                                                                                                                                                        // write()写出一个字节时, 没有直接写到文件, 写到缓冲区里了
                        bis.close();                                                                                                                                                        //关闭流
                        bos.close();
                }
        }

}

作者: 黄玉昆    时间: 2013-4-27 22:32
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢




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