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("执行完毕");
        }
    }
    

      

  • 相关阅读:
    Javascript中最常用的55个经典技巧
    Linux2.6--进程抢占和上下文切换
    redis 无法启动
    Dev GridView-Bind Detail Grid during runtime
    SharePoint场管理-PowerShell(二)
    SharePoint场管理-PowerShell(一)
    SharePoint的安装和配置-PowerShell
    SPField的GetValidatedString方法没有被调用
    PowerShell基础
    什么是工作流?
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/14386704.html
Copyright © 2011-2022 走看看