美文网首页
字节流缓冲区

字节流缓冲区

作者: 李霖神谷 | 来源:发表于2017-02-17 19:22 被阅读36次

    我们使用字节流对象输入输出时,不是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();
        }
    }
    

    相关文章

      网友评论

          本文标题:字节流缓冲区

          本文链接:https://www.haomeiwen.com/subject/whblwttx.html