使用byteArray缓存转换
ByteArrayOutputStream byteArrayOutputStream =new ByteArrayOutputStream();
byte[] buffer =byteArrayOutputStream.toByteArray();
InputStream byteArrayInputStream = new ByteArrayInputStream(buffer);
这种方式最为简单,但是要求执行byteArrayOutputStream.toByteArray();这个方法之前,需要的数据已经完全写入,即无法做到边写边读,另外其需要足够的内存来一次性的容纳这些数据。
PipedOutputStream out = new PipedOutputStream();
PipedInputStream in = new PipedInputStream(out);
这种方法支持流式的方式,一端写一端读,向PipedOutputStream写入的数据可以从PipedInputStream读出,比方法一好一点
使用Circular Buffers
导入maven依赖
<dependency>
<groupId>org.ostermiller</groupId>
<artifactId>utils</artifactId>
<version>1.07.00</version>
</dependency>
CircularByteBuffer cbb = new CircularByteBuffer();
cbb.getOutputStream();
cbb.getInputStream()