gpt4 book ai didi

Java zip.close() 挂起

转载 作者:行者123 更新时间:2023-11-29 08:36:49 24 4
gpt4 key购买 nike

我正在尝试将两个小文件添加到一个 zip 文件中,因为这是目的地要求的格式。这两个文件都小于 1000kb,但是当我运行我的代码时,程序在 zip.close() 期间无限期挂起,没有错误。我做错了什么?

val is = new PipedInputStream()
val os = new PipedOutputStream(is)
val cos = new CountingOutputStream(os)
val zip = new ZipOutputStream(cos)

val fis = new FileInputStream(file)
zip.putNextEntry(new ZipEntry(location))
var i = 0
while(i != -1) {
zip.write(i)
i = fis.read()
}
zip.closeEntry()
fis.close()
zip.close()

最佳答案

当使用管道流时,您需要在写入 PipedOutputStream 的同时从 PipedInputStream 读取,否则管道会填满并且写入将 block 。

根据您的代码,您没有执行阅读部分(当然是在单独的线程中)。您可以使用 FileOutputStream 对其进行测试,它应该可以很好地写入文件。

关于Java zip.close() 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43503208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com