字节流缓冲区

我们使用字节流对象输入输出时,不是java程序直接与硬盘“交流”的,java没有这么大的权限,java程序在jvm中运行,jvm与操作系统相关联,操作系统再与硬盘“交流”,当j我们想要访问硬盘中的数据的时候,为了避免与硬盘的交互次数,java为我们提供了缓冲区。
当我们调用BufferedInputStream的读取数据的方法时,会从它底层维护的数组读取数据。
当我们调用BufferedOutputStream写数据的时候,会先将数据往数组里写,当数组里存满了之后再手动调用刷新方法,才能将数组里的数据写到硬盘中去。

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

public class IoDemo {
    public static void main(String[] args) throws IOException {
        FileInputStream fi = new FileInputStream("e:/lishuai.txt");
        BufferedInputStream b1 = new BufferedInputStream(fi);
        FileOutputStream fo = new FileOutputStream("f:/lishuai.txt");
        BufferedOutputStream b2 = new BufferedOutputStream(fo);
        methord(fi, fo);
    }

    private static void methord(FileInputStream fi, FileOutputStream fo) throws IOException {
        // TODO Auto-generated method stub
        int len = 0;
        byte[] b = new byte[1024];
        while ((len = fi.read(b)) != -1) {
            fo.write(b);
        }
        b1.close();
        b2.close();
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一. Java基础部分.................................................
    wy_sure阅读 9,279评论 0 11
  • 在经过一次没有准备的面试后,发现自己虽然写了两年的android代码,基础知识却忘的差不多了。这是程序员的大忌,没...
    猿来如痴阅读 8,041评论 3 10
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,473评论 11 349
  • 又,快要到冬天了啊…… 微疼将手举在脸前,张大嘴呵气,不停地蹦跳着,跺着自己的脚。 枫树的好看的叶子,已经掉光了,...
    糖卡torncat阅读 2,338评论 0 0
  • 风中花 风中黄花独自开, 偏有蜂儿闻香来。 蜜蜂遥知花中意, 频频回顾花开怀。
    往事如烟胖婆婆阅读 4,464评论 1 15