在Java中使用GZIP格式压缩和解压文件
Java.util.zip 包提供了压缩和解压缩文件内容的类。 Java中提供了 FileInputStream、FileOutputStream 和 GZIPOutputStream 类来压缩和解压缩文件。
使用 GZIPOutputStream 压缩文件
程序中使用的方法
- read():读取一个字节的数据。存在于 FileInputStream 中。
int read()
- write():写入一个字节的数据,存在于 FileOutputStream 中。
void write(int b)
在此示例中,我们在/home/saket/Desktop/GeeksforGeeks/compress 中有一个文本文件。 “GeeksforGeeks”文件夹下的Java驱动器,我们在同一文件夹中压缩和生成 GZip 文件。
// Java program to compress a File
// using GZIPOutputStream class
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;
public class GeeksForGeeks
{
static final String OUTPUT_FILE
= "/home/saket/Desktop/GeeksforGeeks/compress.gz";
static final String INPUT_FILE
= "/home/saket/Desktop//GeeksforGeeks/compress.java";
static void compress()
{
byte[] buffer = new byte[1024];
try
{
GZIPOutputStream os =
new GZIPOutputStream(new FileOutputStream(OUTPUT_FILE));
FileInputStream in =
new FileInputStream(INPUT_FILE);
int totalSize;
while((totalSize = in.read(buffer)) > 0 )
{
os.write(buffer, 0, totalSize);
}
in.close();
os.finish();
os.close();
System.out.println("File Successfully compressed");
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void main (String[] args)
{
compress();
}
}
输出:
File Successfully compressed
运行上述程序后,它将压缩压缩。 Java文件:
使用 GZIPOutputStream 解压文件
// Java program to illustrate
// Decompressing a File using GZIPOutputStream
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
class GeeksForGeeks
{
static final String INPUT_FILE
= "/home/saket/Desktop/GeeksforGeeks/compress.gz";
static final String OUTPUT_FILE
= "/home/saket/Desktop//GeeksforGeeks/decompress.java";
static void decompress()
{
byte[] buffer = new byte[1024];
try
{
GZIPInputStream is =
new GZIPInputStream(new FileInputStream(INPUT_FILE));
FileOutputStream out =
new FileOutputStream(OUTPUT_FILE);
int totalSize;
while((totalSize = is.read(buffer)) > 0 )
{
out.write(buffer, 0, totalSize);
}
out.close();
is.close();
System.out.println("File Successfully decompressed");
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void main (String[] args)
{
decompress();
}
}
输出 :
File Successfully decompressed
编译后的当前状态:
注意:这里decom。 Java包含上面的代码。
运行上述程序后,会解压compress.gz和一个名为decompress的文件。将创建Java 。