国产激情久久久久影院小草_国产91高跟丝袜_99精品视频99_三级真人片在线观看

如何在java中解壓zip和rar文件

時間:2024-11-02 07:01:54 SUN認證 我要投稿
  • 相關(guān)推薦

如何在java中解壓zip和rar文件

  為了方便廣大的程序員朋友,下面講一講如何在java中實現(xiàn)對zip和rar文件的解壓,一起和小編來看看吧!

  一、解壓rar文件。

  由于WinRAR 是共享軟件,并不是開源的,所以解壓rar文件的前提是系統(tǒng)已經(jīng)安裝了winrar,比如本人的安裝路徑是:

  C:\\Program Files\\WinRAR\\winrar.exe

  然后運用java.lang.Process 的相關(guān)知識來運行系統(tǒng)命令行來實現(xiàn)解壓的。

  winrar 命令行相關(guān)參數(shù)自己可以搜索下的網(wǎng)上資料很多

  具體代碼:

  Java代碼

  **

  * 解壓rar文件(需要系統(tǒng)安裝Winrar 軟件)

  * @author Michael sun

  */

  public class UnRarFile {

  /**

  * 解壓rar文件

  *

  * @param targetPath

  * @param absolutePath

  */

  public void unRarFile(String targetPath, String absolutePath) {

  try {

  // 系統(tǒng)安裝winrar的路徑

  String cmd = "C:\\Program Files\\WinRAR\\winrar.exe";

  String unrarCmd = cmd + " x -r -p- -o+ " + absolutePath + " "

  + targetPath;

  Runtime rt = Runtime.getRuntime();

  Process pre = rt.exec(unrarCmd);

  InputStreamReader isr = new InputStreamReader(pre.getInputStream());

  BufferedReader bf = new BufferedReader(isr);

  String line = null;

  while ((line = bf.readLine()) != null) {

  line = line.trim();

  if ("".equals(line)) {

  continue;

  }

  System.out.println(line);

  }

  bf.close();

  } catch (Exception e) {

  System.out.println("解壓發(fā)生異常");

  }

  }

  /**

  * @param args

  */

  public static void main(String[] args) {

  String targetPath = "D:\\test\\unrar\\";

  String rarFilePath = "D:\\test\\test.rar";

  UnRarFile unrar = new UnRarFile();

  unrar.unRarFile(targetPath, rarFilePath);

  }

  }

  二、解壓zip文件

  由于zip是免費的,所以在jdk里提供了相應(yīng)的類對zip文件的實現(xiàn):

  java.util.zip.*,詳細情況可以參考java API

  Java代碼

  /**

  * 解壓zip文件

  * @author Michael sun

  */

  public class UnzipFile {

  /**

  * 解壓zip文件

  *

  * @param targetPath

  * @param zipFilePath

  */

  public void unzipFile(String targetPath, String zipFilePath) {

  try {

  File zipFile = new File(zipFilePath);

  InputStream is = new FileInputStream(zipFile);

  ZipInputStream zis = new ZipInputStream(is);

  ZipEntry entry = null;

  System.out.println("開始解壓:" + zipFile.getName() + "...");

  while ((entry = zis.getNextEntry()) != null) {

  String zipPath = entry.getName();

  try {

  if (entry.isDirectory()) {

  File zipFolder = new File(targetPath + File.separator

  + zipPath);

  if (!zipFolder.exists()) {

  zipFolder.mkdirs();

  }

  } else {

  File file = new File(targetPath + File.separator

  + zipPath);

  if (!file.exists()) {

  File pathDir = file.getParentFile();

  pathDir.mkdirs();

  file.createNewFile();

  }

  FileOutputStream fos = new FileOutputStream(file);

  int bread;

  while ((bread = zis.read()) != -1) {

  fos.write(bread);

  }

  fos.close();

  }

  System.out.println("成功解壓:" + zipPath);

  } catch (Exception e) {

  System.out.println("解壓" + zipPath + "失敗");

  continue;

  }

  }

  zis.close();

  is.close();

  System.out.println("解壓結(jié)束");

  } catch (Exception e) {

  e.printStackTrace();

  }

  }

  /**

  * @param args

  */

  public static void main(String[] args) {

  String targetPath = "D:\\test\\unzip";

  String zipFile = "D:\\test\\test.zip";

  UnzipFile unzip = new UnzipFile();

  unzip.unzipFile(targetPath, zipFile);

  }

  }

【如何在java中解壓zip和rar文件】相關(guān)文章:

Java文件解壓縮示例08-21

Java文件解壓縮實例詳解201607-26

flash源文件中fla文件和swf文件有什么區(qū)別07-27

關(guān)于Java中Queue和BlockingQueue的區(qū)別07-23

如何在dos命令下執(zhí)行PHP文件09-18

JAVA和.NET開發(fā)過程中的區(qū)別10-25

在java中Synchronized的用法10-15

Android XML文件中的08-31

如何在word中畫圖10-13

Java和PHP的區(qū)別08-21