在Java中,使用`GZIPInputStream`和`FileOutputStream`可以很方便地实现文件的解压缩。下面是一个简单的示例,展示了如何使用Java进行GZIP文件的解压缩操作。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
public class GzipDecompressExample {
public static void main(String[] args) {
String gzipFilePath = "path/to/your/file.gz"; // 压缩文件路径
String outputFilePath = "path/to/your/decompressed_file"; // 解压后文件路径,不包含扩展名
decompressFile(gzipFilePath, outputFilePath);
}
/**
* 解压缩GZIP文件
*
* @param gzipFilePath 压缩文件路径
* @param outputFilePath 解压后文件路径
*/
public static void decompressFile(String gzipFilePath, String outputFilePath) {
FileInputStream fis = null;
GZIPInputStream gis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(gzipFilePath);
gis = new GZIPInputStream(fis);
fos = new FileOutputStream(outputFilePath);
byte[] buffer = new byte[1024];
int len;
while ((len = gis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
fos.flush();
System.out.println("文件解压缩成功,解压后的文件路径为:" + outputFilePath);
} catch (IOException e) {
e.printStackTrace();
System.out.println("文件解压缩失败:" + e.getMessage());
} finally {
try {
if (fos != null) fos.close();
if (gis != null) gis.close();
if (fis != null) fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
请确保将`gzipFilePath`和`outputFilePath`变量替换为实际的文件路径。这段代码首先使用`FileInputStream`打开GZIP文件,然后通过`GZIPInputStream`进行读取,并通过`FileOutputStream`写入到解压后的文件中。在读写过程中,使用了一个字节缓冲区来提高效率。最后,不要忘记在`finally`块中关闭所有打开的资源,以避免资源泄漏。