zoukankan      html  css  js  c++  java
  • java 内存输出流ByteArrayOutputStream

    * 1.什么是内存输出流
    * 该输出流可以向内存中写数据, 把内存当作一个缓冲区, 写出之后可以一次性获取出所有数据
    * 2.使用方式
    * 创建对象: new ByteArrayOutputStream()
    * 写入数据到 ByteArrayOutputStream: write(int), write(byte[])
    * 获取数据: toByteArray()

    public class Test001 {
    public static void main(String[] args) throws Exception {

    FileInputStream fin = new FileInputStream("F:\\text\\note.txt");
    ByteArrayOutputStream bout = new ByteArrayOutputStream();

    int len;
    while((len=fin.read())!=-1){
    bout.write(len);
    }

    byte[] arr = bout.toByteArray();
    String comment = new String(arr);
    System.out.println(comment);

    System.out.println("========================");

    System.out.println(bout);
    fin.close();
    bout.close();
    }

    }


    有个问题值得注意:ByteArrayOutputStream的 close() 方法为空实现


    ByteArrayOutputStream不需要关闭,为啥呢?
    ByteArrayOutputStream或ByteArrayInputStream是内存读写流,不同于指向硬盘的流,它内部是使用字节数组读内存的,这个字节数组是它的成员变量,当这个数组不再使用变成垃圾的时候,Java的垃圾回收机制会将它回收,所以不需要关流。也就是说,指向内存的流可以不用关闭,指向存储卡/硬盘的流一定要关闭。


    ————————————————
    版权声明:本文为CSDN博主「91奔跑的蜗牛」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/xldmx/article/details/102724092

  • 相关阅读:
    Making your first driver
    注册表与盘符(转victor888文章 )
    电脑Win7如何取得文件管理所有权(提供各种GHOST版本的Windows)
    可拖动的DIV
    IE Javascript 进阶调试
    优化性能
    命令模式
    MVC 4 结合jquery.uploadify 上传实例
    IIS处理并发请求时出现的问题及解决
    Spring3.2 + Hibernate4.2
  • 原文地址:https://www.cnblogs.com/javalinux/p/15693298.html
Copyright © 2011-2022 走看看