从 ZipInputStream 读取到 ByteArrayOutputStream 中
我正在尝试从 中读取单个文件,并将其复制到 a 中(这样我就可以创建一个并将其交给第三方库,该库最终将关闭流,我不希望我被关闭)。java.util.zip.ZipInputStream
java.io.ByteArrayOutputStream
java.io.ByteArrayInputStream
ZipInputStream
我在这里可能缺少一些基本的东西,但我从来没有在这里进入while循环:
ByteArrayOutputStream streamBuilder = new ByteArrayOutputStream();
int bytesRead;
byte[] tempBuffer = new byte[8192*2];
try {
while ((bytesRead = zipStream.read(tempBuffer)) != -1) {
streamBuilder.write(tempBuffer, 0, bytesRead);
}
} catch (IOException e) {
// ...
}
我错过了什么,可以让我复制流?
编辑:
我应该在前面提到这不是来自文件,所以我认为我不能使用.它来自通过 servlet 上传的文件。ZipInputStream
ZipFile
另外,在获取这段代码之前,我已经调用了。如果我不尝试将文件复制到另一个(通过上面提到的),而只是将文件传递给我的第三方库,则该库将关闭流,我不能再做任何事情,例如处理流中的剩余文件。getNextEntry()
ZipInputStream
InputStream
OutputStream
ZipInputStream