A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沈浩 中级黑马   /  2013-4-16 15:58  /  1150 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 沈浩 于 2013-4-29 17:23 编辑

BufferedReader 和BufferedInputStream 我知道实现的原理
但是BufferedWritrer和BufferedOutputStream具体实现过程是怎样的呢?
怎样自定义一个呢?
望高手们回答的详尽点。多谢啦!!!

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

2 个回复

倒序浏览
//第一种方式:读写文件,是从硬盘--读到内存----再写到硬盘里的
//第二种方式: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();
                }
        }

}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马