java 字节流入门(内存数组流)

本文介绍了Java中的内存数组流,包括ByteArrayOutputStream的使用,它作为一个可自动扩容的字节数组,允许写入字节且能获取实际数据。还讨论了ByteArrayInputStream,它是字节数组的包装,提供流式读取。文章提到在某些场景下,如接口需要InputStream或以流方式操作字节数组时,会使用此类。最后,文章提供了相关代码示例和GitHub链接。
摘要由CSDN通过智能技术生成

       上篇文章介绍了两种常用的文件输入输出流:java 字节流入门(文件流)

       其中向文件中写入的数据都是预先定义好的字节数组 byte[] ,本文介绍另一种在内存中维护字节数组更常用的方式:内存数组输入输出流。

       内存数组流,就是和内存中的数组相关的一个流,可以将字节数组写到输出流中,也可以将字节数组从输入流中读出来,不涉及磁盘。

内存数组输出流:ByteArrayOutputStream

       内存数组输出流可以看成一个可自动扩容的 byte 数组,可以往里写字节。

       默认初始化 32 个字节的大小。

631a48047290fea7b6f4c15c326ef292.png

       最大容量是 2^31-9 个字节(2G)。只要数据不超过2G,都可以往里写。每次写数据之前,会先计算需要的容量大小,如果需要扩容,扩大到 max{原来的两倍,需要的容量大小}

       此外,还可以将 ByteArrayOutputStream 中的字节数组拿出来,拿出来的只是真实存在的数据量。

       为了验证扩容方式,把其内部缓冲区拿出来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Apache IoTDB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值