在Java中可以使用GZIPOutputStream来进行gzip压缩操作,但是无法直接保留源文件,因为压缩操作是对数据进行处理后输出到目标文件中。如果想要保留源文件,可以先将源文件内容读取到内存中,然后进行压缩操作,最后将压缩后的数据写入目标文件,并将源文件内容写回源文件。 以下是一个简单的示例代码,演示了如何进行gzip压缩并保留源文件
在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对源文件内容进行压缩,将压缩后的数据写入目标文件。最后,将源文件内容写回源文件,完成压缩并保留源文件的操作。
版权声明
本文仅代表作者观点,不代表博信信息网立场。