压缩过程如下:
public String compress(String fileName) throws Exception {
String destFile = fileName + ".gz";
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(fileName), "GBK"));
BufferedOutputStream out = new BufferedOutputStream(
new GZIPOutputStream(new FileOutputStream(destFile)));
int c;
while ((c = in.read()) != -1)
out.write(String.valueOf((char) c).getBytes("GBK"));
in.close();
out.close();
File file = new File(destFile);
if (file.exists()) {
return destFile;
} else {
throw new Exception("压缩失败!");
}
}
}
解压过程如下:
public String uncompressFile(String fileName) throws Exception {
String toFileName = "";
GZIPInputStream gzi = new GZIPInputStream(new FileInputStream(fileName));
int to = fileName.lastIndexOf('.');
toFileName = fileName.substring(0, to);
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(toFileName));
int b;
byte[] d = new byte[1024];
while ((b = gzi.read(d)) > 0) {
bos.write(d, 0, b);
}
gzi.close();
bos.close();
File file = new File(toFileName);
if (file.exists()) {
return toFileName;
} else {
throw new Exception("解压失败!");
}
}
其中filename为文件决定路径名,比如:F:\\工作\\test.txt