zoukankan      html  css  js  c++  java
  • 关于缓冲流

    package com.bjsxt.ios3;
    
    import java.io.*;
    
    /**
     *1.只要关闭高层流即可,底层流不用手动关闭;因为高层的关闭方法就是把底层流关闭
     *
     *2.何时将输出缓冲区的内容写入硬盘
     *   1.输出缓冲区满,自动写入硬盘(刷新 flush)
     *   2.close()会先刷新
     *   3.手动的flush()
     * 3.缓冲流的原理
     */
    public class TestBuffredStream2 {
        public static void main(String[] args) throws IOException {
            //1.创建流
    //        InputStream fis = new FileInputStream("e:/JDK_API_1_6_zh_CN.CHM");
    //        OutputStream fos = new FileOutputStream("e:\\JDK_API_1_6_zh_CN2.CHM");
    //        BufferedInputStream bis = new BufferedInputStream(fis);//8192
    //        BufferedOutputStream bos = new BufferedOutputStream(fos);//8192
            BufferedInputStream bis =
                    new BufferedInputStream(new FileInputStream("e:/JDK_API_1_6_zh_CN.CHM"));//8192
            BufferedOutputStream bos =
                    new BufferedOutputStream(new FileOutputStream("e:\\JDK_API_1_6_zh_CN2.CHM"));//8192
            //2.使用流
            //2.1 准备一个中转站(一个字节)
            byte [] buf = new byte[1024];
            //先读一个字节
            int len= bis.read(buf);//读源文件的一个字节赋给n
            while(len  != -1){ //读到 了数据,还没有到文件末尾
                //写一个字节
                bos.write(buf,0,len);
                //再读一个字节
                len= bis.read(buf);//读源文件的一个字节赋给n
            }
    
            //3.关闭流
            bos.flush();
            bis.close();
            bos.close();
    //        fis.close();
    //        fos.close();
        }
    }
  • 相关阅读:
    Swing中的并发使用SwingWorker线程模式
    使用批处理打二次开发包
    【转】批处理删除SVN文件
    EAS BOS ORMapping的研究
    EAS BOS ORMapping 元数据解析示例
    ORMapping学习
    EAS BOS数据查询默认会查分录的分析
    【Oracle】常用查询
    KDTable公式解析提示信息设置
    【转】Swing多线程编程
  • 原文地址:https://www.cnblogs.com/vincentmax/p/14245145.html
Copyright © 2011-2022 走看看