java提取压缩文件

    xiaoxiao2022-07-14  156

    提取压缩文件放到另一个文件中

    public static void unzip(String zipFilePath, String targetPath) throws IOException { OutputStream os = null; InputStream is = null; ZipFile zipFile = null; try { zipFile = new ZipFile(zipFilePath,Charset.forName("GBK")); String directoryPath = ""; if (null == targetPath || "".equals(targetPath)) { directoryPath = zipFilePath.substring(0, zipFilePath .lastIndexOf(".")); } else { directoryPath = targetPath; } Enumeration<?> entryEnum = zipFile.entries(); if (null != entryEnum) { ZipEntry zipEntry = null; while (entryEnum.hasMoreElements()) { zipEntry = (ZipEntry) entryEnum.nextElement(); if (zipEntry.getSize() > 0) { // 文件 File targetFile = FileUtil.buildFile(directoryPath + File.separator + zipEntry.getName(), false); os = new BufferedOutputStream(new FileOutputStream(targetFile)); is = zipFile.getInputStream(zipEntry); byte[] buffer = new byte[4096]; int readLen = 0; while ((readLen = is.read(buffer, 0, 4096)) >= 0) { os.write(buffer, 0, readLen); os.flush(); } is.close(); os.close(); } if (zipEntry.isDirectory()) { String pathTemp = directoryPath + File.separator + zipEntry.getName(); File file = new File(pathTemp); file.mkdirs(); System.out.println(pathTemp); // continue; } } } } catch (IOException ex) { throw ex; } finally { if(null != zipFile){ zipFile.close(); zipFile = null; } if (null != is) { is.close(); } if (null != os) { os.close(); } } }

    其中FileUtil.buildFile()这个方法在

    FileUtil类中

    public class FileUtil { public static File buildFile(String fileName, boolean isDirectory) { File target = new File(fileName); if (isDirectory) { target.mkdirs(); } else { if (!target.getParentFile().exists()) { target.getParentFile().mkdirs(); target = new File(target.getAbsolutePath()); } } return target; } }

     

    最新回复(0)