【问题标题】:Java zip.close() hangsJava zip.close() 挂起
【发布时间】:2017-09-16 02:59:29
【问题描述】:

我正在尝试将两个小文件添加到 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()

【问题讨论】:

    标签: java scala zip inputstream


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-08-23
      • 1970-01-01
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-31
      • 2013-10-19
      • 2010-10-10
      • 1970-01-01
      相关资源
      最近更新 更多