文件名称:
java解压zip包(包含中文文件夹)的方法
开发工具:
文件大小: 19kb
下载次数: 0
上传时间: 2011-09-29
详细说明: 可以解决包含中文文件夹的zip包解压的问题 /** * 解压缩zipFile * @param file 要解压的zip文件对象 * @param outputDir 要解压到某个指定的目录下 * @throws IOException */ public void unzip(String zipFileName, String outputDir) throws IOException { try { BufferedOutputStream bos = null; // 创建输入字节流 FileInputStream fis = new FileInputStream(zipFileName); // 根据输入字节流创建输入字符流 BufferedInputStream bis = new BufferedInputStream(fis); // 根据字符流,创建ZIP文件输入流 ZipInputStream zis = new ZipInputStream(bis); // zip文件条目,表示zip文件 ZipEntry entry; // 循环读取文件条目,只要不为空,就进行处理 while ((entry = zis.getNextEntry()) != null) { int count; byte date[] = new byte[2048]; // 如果条目是文件目录,则继续执行 if (entry.isDirectory()) { continue; } else { int begin = zipFileName.lastIndexOf("\\") + 1; int end = zipFileName.lastIndexOf(".") + 1; String zipRealName = zipFileName.substring(begin, end); bos = new BufferedOutputStream(new FileOutputStream(this .getRealFileName(outputDir + "\\" + zipRealName, entry.getName()))); while ((count = zis.read(date)) != -1) { bos.write(date, 0, count); } bos.flush(); bos.close(); } } zis.close(); } catch (Exception e) { e.printStackTrace(); } } private File getRealFileName(String zippath, String absFileName) { String[] dirs = absFileName.split("/", absFileName.length()); // 创建文件对象 File file = new File(zippath); if (dirs.length > 1) { for (int i = 0; i < dirs.length - 1; i++) { // 根据file抽象路径和dir路径字符串创建一个新的file对象,路径为文件的上一个目录 file = new File(file, dirs[i]); } } if (!file.exists()) { file.mkdirs(); } file = new File(file, dirs[dirs.length - 1]); return file; } ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.