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

  • 相关阅读:
    钟国晨160809323(作业5)
    12
    11
    第九次
    8作业
    第七次作业
    6
    林昊5
    计算机网络原理与应用笔记 3/29
    计算机网络原理与应用笔记 3/22
  • 原文地址:https://www.cnblogs.com/javalinux/p/15693298.html
Copyright © 2011-2022 走看看