在解压图片的时候发现ByteArrayOutputStream不需要关闭,为啥呢? 
ByteArrayOutputStream或ByteArrayInputStream是内存读写流,不同于指向硬盘的流,它内部是使用字节数组读内存的,这个字节数组是它的成员变量,当这个数组不再使用变成垃圾的时候,Java的垃圾回收机制会将它回收。所以不需要关流。如下图所示,ByteArrayOutputStream内部是数组: 
转载:ByteArrayOutputStream或ByteArrayInputStream不需要关闭流原因分析
然后再看看FileOutputStream的构造: 
转载:ByteArrayOutputStream或ByteArrayInputStream不需要关闭流原因分析
很明显FileOutputStream的构造方法打开了IoBridge, 
也就是说,指向内存的流可以不用关闭,指向存储卡/硬盘的流一定要关闭。

相关文章:

  • 2021-08-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-06
  • 2021-06-09
  • 2021-06-24
猜你喜欢
  • 2021-04-14
  • 2021-10-10
  • 2022-02-04
  • 2021-11-16
  • 2022-12-23
  • 2022-01-26
  • 2022-12-23
相关资源
相似解决方案