具体使用的jar包,可就下载。
代码如下:
/**
* 解压缩tar文件
* @param file 压缩包文件
* @param targetPath 目标文件夹
* @param delete 解压后是否删除原压缩包文件
*/
private static void decompressTar(File file, String targetPath, boolean delete){
FileInputStream fis = null;
OutputStream fos = null;
TarInputStream tarInputStream = null;
try {
fis = new FileInputStream(file);
tarInputStream = new TarInputStream(fis, 1024 * 2);
// 创建输出目录
createDirectory(targetPath, null);
TarEntry entry = null;
while(true){
entry = tarInputStream.getNextEntry();
if( entry == null){
break;
}
if(entry.isDirectory()){
createDirectory(targetPath, entry.getName()); // 创建子目录
}else{
fos = new FileOutputStream(new File(targetPath + File.separator + entry.getName()));
int count;
byte data[] = new byte[2048];
while ((count = tarInputStream.read(data)) != -1) {
fos.write(data, 0, count);
}
fos.flush();
}
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(fis != null){
fis.close();
}
if(fos != null){
fos.close();
}
if(tarInputStream != null){
tarInputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}