为什么ByteArrayInputStream内部持有byte buf[]但是没有getByteArray方法

ByteArrayInputStream 是有一个构造方法的 public ByteArrayInputStream(byte buf[]) 但是为什么不一共一个 getByteArray 方法呢 ?

大家应该都用过 IOUtils.toByteArray(inputStream)

里面逻辑就是将 inputStream 里面的 byte[] write 到一个临时的 ByteArrayOutputStream, 然后再调用 ByteArrayOutputStream 的 toByteArray

如果 ByteArrayInputStream 有 getByteArray 这不就简单了吗

阅读 1.8k
1 个回答
ByteArrayInputStream 是有一个构造方法的 public ByteArrayInputStream(byte buf[]) 但是为什么不一共一个 getByteArray 方法呢 ?

因为没必要,做这个流是为了给别人读,自己只管写就行

大家应该都用过 IOUtils.toByteArray(inputStream)
里面逻辑就是将 inputStream 里面的 byte[] write 到一个临时的 ByteArrayOutputStream, 然后再调用 ByteArrayOutputStream 的 toByteArray

InputStream里面没有byte[],只有ByteArrayInputStream

如果 ByteArrayInputStream 有 getByteArray 这不就简单了吗

不是所有的InputStream都是ByteArrayInputStream,所以也不存在简单不简单……

原答案分割线


虽然没有getByteArray,但是有readAllBytes
毕竟是流,主要是做流给人读,不是简单地传递一个字节数组

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题