/** * 解压缩一个文件 * * @param zipFile * 要解压的压缩文件 * @param folderPath * 解压缩的目标目录 * @param folderName * 解压缩的文件夹名称 * @throws IOException * 当解压缩过程出错时抛出 */ public static void upZipFile(File zipFile, String folderPath, String folderName) throws ZipException, IOException { File desDir = new File(folderPath); if (!desDir.exists()) { desDir.mkdirs(); } ZipFile zf = new ZipFile(zipFile); String fileName = ""; for (Enumeration entries = zf.entries(); entries.hasMoreElements();) { ZipEntry entry = ((ZipEntry) entries.nextElement()); InputStream in = zf.getInputStream(entry); fileName = entry.getName().substring( entry.getName().indexOf('/') + 1); String str = folderPath + File.separator + folderName + "/" + fileName; str = new String(str.getBytes("8859_1"), "GB2312"); File desFile = new File(str); if (!desFile.exists()) { File fileParentDir = desFile.getParentFile(); if (!fileParentDir.exists()) { fileParentDir.mkdirs(); } desFile.createNewFile(); } OutputStream out = new FileOutputStream(desFile); byte buffer[] = new byte[1024]; int realLength; while ((realLength = in.read(buffer)) > 0) { out.write(buffer, 0, realLength); } in.close(); out.close(); } }