我有一个可以从zip文件中获取固定大小的字节数组缓冲区的类。有没有办法将其连接到ZipInputStream?就像这样:
public class MyByteArrayProducer {
public boolean hasMoreData();
public void getNextChunk(byte[] buffer);
}
ZipInputStream类希望从中读取InputStream,但是我必须使用上述类。
谢谢
最佳答案
基于字节数组创建一个ByteArrayInputStream,然后将此流传递给ZipInputStream构造函数。
- 编辑 -
如果字节数组太大而无法完全保留在内存中,则可以使用管道流允许在到达小块时对其进行处理:
// Write byte arrays to this stream in the producer thread
PipedOutputStream os = new PipedOutputStream();
PipedInputStream in = new PipedInputStream(os);
// Read from this stream in the consumer thread
ZipInputStream zis = new ZipInputStream(in);
关于java - InputStream和字节数组生产者?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23328563/