java-创建空的GZIP文件

java-创建空的GZIP文件,java,zip,gzip,Java,Zip,Gzip,我试图解决一个简单的问题——使用Java创建一个空的GZip文件,这样在尝试读取它时就不会引发异常。如果我这样做: Files.createFile(outPutFile); new PrintWriter(new GZIPOutputStream(new FileOutputStream(outPutFile.toFile())), true).close(); 它解决了这个问题——我猜GZipOutputStream在文件中存储了一些更深入的数据。是否有一种更简洁的方法来实现上述目标,即不

我试图解决一个简单的问题——使用Java创建一个空的GZip文件,这样在尝试读取它时就不会引发异常。如果我这样做:

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

它解决了这个问题——我猜GZipOutputStream在文件中存储了一些更深入的数据。是否有一种更简洁的方法来实现上述目标,即不会出现意外的Zlib归档异常结束?

好吧,您不需要调用
createFile
来开始-创建
FileOutputStream
就可以了。您也不需要
PrintWriter
。因此,您所需要的是:

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

顺便说一下,在
outPutFile
中把
p
大写是很奇怪的-它不像是三个字…

你想用什么读取代码?嗯,我认为它有效,但它仍然抛出异常。在我创建一个文件后,它有20个字节,在归档文件中有一个空文件。但是,如果我尝试使用
reader=new BufferedReader(new InputStreamReader(new GZIPInputStream)(new FileInputStream(path.toFile()))打开它
it failsOK,每当我尝试从file@Bober02:引发了什么异常?我不知道你所说的“档案中的一个空文件”是什么意思——GZIP不像zip文件;它没有多个文件。它只是一个压缩流。好:输出是一个压缩的空流。当我将GzipInputStream包装在BufferedReader中并尝试readLine()时,我得到了EOFEException:ZLIB输入流的意外结束