Java 解壓檔案

來源:互聯網
上載者:User
 

public void testReadZip() throws Exception {
  // InputStream is=new BufferedInputStream(new FileInputStream());
  String baseDir = "C://Documents and Settings//ws//案頭//建立檔案夾";
  ZipFile zfile = new ZipFile("C://Documents and Settings//ws//案頭//建立檔案夾//dd.zip");
  System.out.println(zfile.getName());
  Enumeration zList = zfile.entries();
  ZipEntry ze = null;
  byte[] buf = new byte[1024];
  while (zList.hasMoreElements()) {
   // 從ZipFile中得到一個ZipEntry
   ze = (ZipEntry) zList.nextElement();
   if (ze.isDirectory()) {
    System.out.println("Dir: " + ze.getName() + " skipped..");
    continue;
   }
   System.out.println("Extracting: " + ze.getName() + "/t"
     + ze.getSize() + "/t" + ze.getCompressedSize());
   // 以ZipEntry為參數得到一個InputStream,並寫到OutputStream中
   OutputStream os = new BufferedOutputStream(new FileOutputStream(
     getRealFileName(baseDir, ze.getName())));
   InputStream is = new BufferedInputStream(zfile.getInputStream(ze));
   int readLen = 0;
   while ((readLen = is.read(buf, 0, 1024)) != -1) {
    os.write(buf, 0, readLen);
   }
   is.close();
   os.close();
   System.out.println("Extracted: " + ze.getName());
  }
  zfile.close();
}

private File getRealFileName(String baseDir, String absFileName) {//指定根目錄// 相對路徑名——ZipEntry中的name
  String[] dirs = absFileName.split("/");
  // System.out.println(dirs.length);
  File ret = new File(baseDir);
  if (dirs.length > 1) {
   for (int i = 0; i < dirs.length - 1; i++) {
    ret = new File(ret, dirs[i]);
   }
  }
  if (!ret.exists()) {
   ret.mkdirs();
  }
  ret = new File(ret, dirs[dirs.length - 1]);
  return ret;
}  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.