java压缩与解压(Java.util.zip)
发布时间:2020-12-15 00:12:32 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.Fil
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipException; import java.util.zip.ZipFile; import java.util.zip.ZipInputStream; import java.util.zip.ZipOutputStream; /** * 文件解压缩 * * @author Tony * */ public final class FileToZip { FileToZip() { } /** * 将存放在sourceFilePath目录下的源文件,打包成fileName名称的ZIP文件,并存放到zipFilePath。 * * @param sourceFilePath * 待压缩的文件路径 * @param zipFilePath * 压缩后存放路径 * @param fileName * 压缩后文件的名称 * @return flag */ public static boolean fileToZip(String sourceFilePath,String zipFilePath,String fileName) { boolean flag = false; File sourceFile = new File(sourceFilePath); FileInputStream fis = null; BufferedInputStream bis = null; FileOutputStream fos = null; ZipOutputStream zos = null; if (sourceFile.exists() == false) { System.out.println(">>>>>> 待压缩的文件目录:" + sourceFilePath + " 不存在. <<<<<<"); } else { try { File zipFile = new File(zipFilePath + "/" + fileName + ".RAR"); // File zipFile = new File(zipFilePath + "/" + fileName + ".zip"); if (zipFile.exists()) { System.out.println(">>>>>> " + zipFilePath + " 目录下存在名字为:" + fileName + ".RAR" + " 打包文件. <<<<<<"); } else { File[] sourceFiles = sourceFile.listFiles(); if (null == sourceFiles || sourceFiles.length < 1) { System.out.println(">>>>>> 待压缩的文件目录:" + sourceFilePath + " 里面不存在文件,无需压缩. <<<<<<"); } else { fos = new FileOutputStream(zipFile); zos = new ZipOutputStream(new BufferedOutputStream(fos)); byte[] bufs = new byte[1024 * 10]; for (int i = 0; i < sourceFiles.length; i++) { // 创建ZIP实体,并添加进压缩包 ZipEntry zipEntry = new ZipEntry(sourceFiles[i] .getName()); zos.putNextEntry(zipEntry); // 读取待压缩的文件并写进压缩包里 fis = new FileInputStream(sourceFiles[i]); bis = new BufferedInputStream(fis,1024 * 10); int read = 0; while ((read = bis.read(bufs,1024 * 10)) != -1) { zos.write(bufs,read); } } flag = true; } } } catch (FileNotFoundException e) { e.printStackTrace(); throw new RuntimeException(e); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } finally { // 关闭流 try { if (null != bis) bis.close(); if (null != zos) zos.close(); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } } } return flag; } public static void unZip(String sourceFilePath,String unzipFilePath) { File sourceFile = new File(sourceFilePath); ZipFile zipFile = null; ZipEntry zipEntry = null; ZipInputStream zis = null; FileOutputStream fos = null; FileInputStream fis = null; if (sourceFile.exists() == false) { System.out.println(">>>>>> 待解压的文件目录:" + sourceFilePath + " 不存在. <<<<<<"); } else { try { System.out.println(">>>>>> 开始解压:" + sourceFilePath + " <<<<<<"); zipFile = new ZipFile(sourceFile); zis = new ZipInputStream(new FileInputStream(sourceFile)); while ((zipEntry = zis.getNextEntry()) != null) { String fileName = zipEntry.getName(); File temp = new File(unzipFilePath + "" + fileName); System.out.println(fileName + ">>>>>>解压到" + unzipFilePath); if (!temp.getParentFile().exists()) { temp.getParentFile().mkdirs(); } fos = new FileOutputStream(temp); InputStream is = zipFile.getInputStream(zipEntry); int len = 0; while ((len = is.read()) != -1) { fos.write(len); } is.close(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ZipException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { // 关闭流 try { if (null != fos) fos.close(); if (null != fis) fis.close(); if (null != zis) zis.close(); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } } } } /** * 将文件打包成ZIP压缩文件,main方法测试 * * @param args */ public static void main(String[] args) { String sourceFilePath = "D:ssslp20120301.rar"; // String zipFilePath = "D:sss"; // String fileName = "lp20120301"; // boolean flag = FileToZip.fileToZip(sourceFilePath,zipFilePath,// fileName); // if(flag) { // System.out.println(">>>>>> 文件打包成功. <<<<<<"); // } else { // System.out.println(">>>>>> 文件打包失败. <<<<<<"); // } FileToZip.unZip(sourceFilePath,"E:sdf"); } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |