• 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

  • 相关阅读:
    fork()
    定时器
    epoll函数
    select函数
    高性能服务器程序框架
    socker地址API
    点击选中/取消选中flag
    html5的视频和音频
    html5
    JavaScript的string方法(demo)
  • 原文地址:https://www.cnblogs.com/javalinux/p/15693298.html
Copyright © 2020-2023  润新知