亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

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

時(shí)間:2020-10-04 14:14:50 SUN認(rèn)證 我要投稿

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

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

  一、解壓rar文件。

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

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

  然后運(yùn)用java.lang.Process 的相關(guān)知識(shí)來(lái)運(yùn)行系統(tǒng)命令行來(lái)實(shí)現(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是免費(fèi)的,所以在jdk里提供了相應(yīng)的類(lèi)對(duì)zip文件的實(shí)現(xiàn):

  java.util.zip.*,詳細(xì)情況可以參考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("開(kāi)始解壓:" + 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的壓縮與解壓縮ZIP10-07

Java文件解壓縮示例05-12

Java文件解壓縮實(shí)例詳解201605-15

JAVA認(rèn)證基礎(chǔ)知識(shí):Java文件解壓縮示例11-18

如何在ppt中播放flash文件08-30

如何在word中制作標(biāo)準(zhǔn)公文文件頭10-11

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

Java里處理文件的技巧05-08

Java讀取xml文件的方法11-05