从ByteArrayInputStream获取内部字节数组

Sea*_*yen 6 java

我想从ByteArrayInputStream获取内部字节数组.我不想扩展该类或将其写入另一个字节数组.是否有一个实用工具类可以帮助我做到这一点?

谢谢,

Kur*_*lor 17

您无法访问相同的字节数组,但您可以轻松复制流的内容:

public byte[] read(ByteArrayInputStream bais) {
     byte[] array = new byte[bais.available()];
     bais.read(array);

     return array;
}
Run Code Online (Sandbox Code Playgroud)


Tom*_*ine 3

扩展ByteArrayInputStream,然后您就可以访问这些protected字段了。这是做到这一点的方法。提供了构造函数来从参数中获取字节数组。

但是,您可能会发现装饰器模式更有帮助。