学堂 学堂 学堂公众号手机端

在Java中可以使用GZIPOutputStream来进行gzip压缩操作,但是无法直接保留源文件,因为压缩操作是对数据进行处理后输出到目标文件中。如果想要保留源文件,可以先将源文件内容读取到内存中,然后进行压缩操作,最后将压缩后的数据写入目标文件,并将源文件内容写回源文件。 以下是一个简单的示例代码,演示了如何进行gzip压缩并保留源文件

lewis 2年前 (2023-11-05) 阅读数 9 #技术

在Java中可以使用GZIPOutputStream来进行gzip压缩操作,但是无法直接保留源文件,因为压缩操作是对数据进行处理后输出到目标文件中。如果想要保留源文件,可以先将源文件内容读取到内存中,然后进行压缩操作,最后将压缩后的数据写入目标文件,并将源文件内容写回源文件。

以下是一个简单的示例代码,演示了如何进行gzip压缩并保留源文件:

importjava.io.*; importjava.util.zip.GZIPOutputStream; publicclassGzipExample{ publicstaticvoidmain(String[]args){ StringsourceFile="source.txt"; StringtargetFile="target.gz"; try{ //读取源文件内容 FileInputStreamfis=newFileInputStream(sourceFile); ByteArrayOutputStreambaos=newByteArrayOutputStream(); byte[]buffer=newbyte[1024]; intbytesRead; while((bytesRead=fis.read(buffer))!=-1){ baos.write(buffer,0,bytesRead); } //压缩源文件内容 FileOutputStreamfos=newFileOutputStream(targetFile); GZIPOutputStreamgos=newGZIPOutputStream(fos); gos.write(baos.toByteArray()); gos.close(); //将源文件内容写回源文件 FileOutputStreamfos2=newFileOutputStream(sourceFile); fos2.write(baos.toByteArray()); fis.close(); baos.close(); fos.close(); fos2.close(); System.out.println("压缩并保留源文件成功"); }catch(IOExceptione){ e.printStackTrace(); } } }

在这个示例中,首先读取源文件内容到内存中,然后使用GZIPOutputStream对源文件内容进行压缩,将压缩后的数据写入目标文件。最后,将源文件内容写回源文件,完成压缩并保留源文件的操作。


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门