如何高效解压zip、rar、.tar.gz等多种格式压缩文件?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1097个文字,预计阅读时间需要5分钟。
解压zip、rar、tar.gz压缩包,代码如下:
javapackage com.hisign;
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;
public class Unzip { public static void main(String[] args) { File zipFile=new File(path/to/your/file.zip); unzip(zipFile); }
public static void unzip(File zipFile) { try (BufferedInputStream bis=new BufferedInputStream(new FileInputStream(zipFile)); BufferedReader br=new BufferedReader(new InputStreamReader(bis))) { String line; while ((line=br.readLine()) !=null) { File file=new File(zipFile.getParent(), line); if (file.isDirectory()) { file.mkdirs(); } else { try (BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(file))) { byte[] buffer=new byte[1024]; int len; while ((len=bis.read(buffer)) > 0) { bos.write(buffer, 0, len); } } } } } catch (Exception e) { e.printStackTrace(); } }}
zip,rar.tar.gz压缩包的解压package com.hisign;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Enumeration;
import java.util.List;
import java.util.Map;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import org.apache.commons.compress.archivers.ArchiveInputStream;
import org.apache.commons.compress.archivers.ArchiveStreamFactory;
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import de.innosystec.unrar.Archive;
import de.innosystec.unrar.rarfile.FileHeader;
public class decompressionUtil {
public static void main(String[] args) {
}
private static final int buffer = 2048;
/**
* Tar文件解压方法
*
* @param tarGzFile
* 要解压的压缩文件名称(绝对路径名称)
* @param destDir
* 解压后文件放置的路径名(绝对路径名称)
* @return 解压出的文件列表
*/
public static void unGZ(String tarGzFile, String destDir) {
// List
本文共计1097个文字,预计阅读时间需要5分钟。
解压zip、rar、tar.gz压缩包,代码如下:
javapackage com.hisign;
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;
public class Unzip { public static void main(String[] args) { File zipFile=new File(path/to/your/file.zip); unzip(zipFile); }
public static void unzip(File zipFile) { try (BufferedInputStream bis=new BufferedInputStream(new FileInputStream(zipFile)); BufferedReader br=new BufferedReader(new InputStreamReader(bis))) { String line; while ((line=br.readLine()) !=null) { File file=new File(zipFile.getParent(), line); if (file.isDirectory()) { file.mkdirs(); } else { try (BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(file))) { byte[] buffer=new byte[1024]; int len; while ((len=bis.read(buffer)) > 0) { bos.write(buffer, 0, len); } } } } } catch (Exception e) { e.printStackTrace(); } }}
zip,rar.tar.gz压缩包的解压package com.hisign;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Enumeration;
import java.util.List;
import java.util.Map;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import org.apache.commons.compress.archivers.ArchiveInputStream;
import org.apache.commons.compress.archivers.ArchiveStreamFactory;
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import de.innosystec.unrar.Archive;
import de.innosystec.unrar.rarfile.FileHeader;
public class decompressionUtil {
public static void main(String[] args) {
}
private static final int buffer = 2048;
/**
* Tar文件解压方法
*
* @param tarGzFile
* 要解压的压缩文件名称(绝对路径名称)
* @param destDir
* 解压后文件放置的路径名(绝对路径名称)
* @return 解压出的文件列表
*/
public static void unGZ(String tarGzFile, String destDir) {
// List

