我有一个可以从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/

10-10 12:46