【问题标题】:java - creating empty GZIP filejava - 创建空的 GZIP 文件
【发布时间】:2012-12-28 15:56:55
【问题描述】:

我正在尝试解决一个简单的问题 - 使用 Java 创建一个空的 GZip 文件,以便在尝试从中读取时不会引发异常。如果我这样做:

Files.createFile(outPutFile);
new PrintWriter(new GZIPOutputStream(new FileOutputStream(outPutFile.toFile())), true).close();

它解决了这个问题——我猜 GZipOutputStream 在文件中存储了一些进一步的数据。有没有更简洁的方法来实现上述目标,即不会出现 Unexpected end of Zlib archive 异常?

【问题讨论】:

  • 你要工作的阅读码是什么?

标签: java zip gzip


【解决方案1】:

好吧,您无需调用 createFile 即可开始 - 创建 FileOutputStream 即可。你也不需要PrintWriter。所以你只需要:

new GZIPOutputStream(new FileOutputStream(outPutFile)).close();

顺便说一句,outPutFile 中的P 大写很奇怪——它不像是三个字……

【讨论】:

  • 嗯,我认为它有效,但它仍然抛出异常。在我创建一个文件后,它在存档中有 20 个字节和一个空文件。但是,如果我尝试使用 reader = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(path.toFile())))); 打开它会失败
  • 好的,每当我尝试从文件中读取Line()时都会抛出异常
  • @Bober02:抛出什么异常?我不确定您所说的“存档中的空文件”是什么意思 - GZIP 不像 zip 文件;它没有多个文件。它只是一个压缩流。
  • OK:输出是一个压缩的空流。当我将 GzipInputStream 包装在 BufferedReader 中并尝试 readLine() 时,我得到 EOFException: Unexpected end of ZLIB input stream
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-15
  • 2021-03-10
相关资源
最近更新 更多