zoukankan      html  css  js  c++  java
  • BufferStream 缓存流

    BufferedInputStream

    bufferedReader底层有自己维护的缓存区(下面的小案例就是使用bufferreader默认的缓存区)

    package com.iopractise;
    
    import java.io.*;
    
    /**
     * 使用字节缓存流读取
     */
    public class Demo05 {
        public static void main(String[] args) throws IOException {
            // 1 创建
            FileInputStream fileInputStream = new FileInputStream("d:\aaa.txt");//也叫做节点流或基础流
            BufferedInputStream bufferedReader = new BufferedInputStream(fileInputStream);
            //2.读取
            int data=0;
            while ((data=bufferedReader.read())!=-1){
                System.out.print((char)data);
            }
    
            //3.关闭资源
            bufferedReader.close();//在关闭bufferReader的时候也就相当于将fileinputstream流关闭了
            System.out.println("
    执行完毕");
    
        }
    }
    

      

    当然,我们也可以自己构建缓存区

    package com.iopractise;
    
    import java.io.BufferedInputStream;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    
    /**
     * 使用字节缓存流读取  我们自己构建缓存区
     */
    public class Demo06 {
        public static void main(String[] args) throws IOException {
            // 1 创建
            FileInputStream fileInputStream = new FileInputStream("d:\aaa.txt");//也叫做节点流或基础流
            BufferedInputStream bufferedReader = new BufferedInputStream(fileInputStream);
            //2.读取
            byte[] buff = new byte[1024];
            int count=0;
            while ((count=bufferedReader.read(buff))!=-1){
                System.out.print(new String(buff,0,count));
            }
    
            //3.关闭资源
            bufferedReader.close();//在关闭bufferReader的时候也就相当于将fileinputstream流关闭了
            System.out.println("
    执行完毕");
        }
    
    }
    

      

    BufferedOutputStream

    使用字节缓存输出流将数据写出到文件中

    package com.iopractise;
    
    import com.sun.media.sound.SoftTuning;
    
    import java.io.BufferedOutputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /**
     * 使用字节缓存输出流将数据写出到文件中
     */
    public class Demo07 {
        public static void main(String[] args) throws IOException {
            //1.创建字节缓存输出流
            FileOutputStream fileOutputStream = new FileOutputStream("d:\buffer.txt");
            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
            //2.写入文件
            for (int i=0;i<10;i++) {
                //这里不管使用
    或者
    最终都是能够实现换行的效果的。
                bufferedOutputStream.write("helloworld
    ".getBytes());//如果数据小于8k,如果不调用flush()方法的话,是不会写入到文件中的
                bufferedOutputStream.flush();//这样写虽然效率低了,但是能够尽量防止因为断电原因造成的缓存区的数据没有写入到磁盘中
            }
            //3.关闭资源
            bufferedOutputStream.close();//关闭了bufferedOutputStream也就相当于将fileOutputStream关闭了
            //close() 方法执行完毕之后,其实底层也是会调用flush()方法,缓存中的数据刷新到磁盘中。
            System.out.println("执行完毕");
        }
    }
    

      

  • 相关阅读:
    Mobile GMaps - Google Map移动版
    365Key今天不能用了,感觉不爽
    推荐:对个人免费的杀毒软件[avast!]
    向 Visual Studio 2005 Tools for Office 迁移时,将 VBA 代码转换为 Visual Basic .NET
    令人向往的3000年生活(转载)
    也说技术人员创业
    痛恨3721的朋友们,装个avast! Antivirus吧
    很Cool很全的Google Map的应用
    关于.net的企业应用开发
    天天网摘(20050704)
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/14386704.html
Copyright © 2011-2022 走看看