千家信息网

Java如何实现ZIP压缩与解压

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,Java如何实现ZIP压缩与解压,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。程序实现了ZIP压缩。共分为2部分 : 压
千家信息网最后更新 2025年01月21日Java如何实现ZIP压缩与解压

Java如何实现ZIP压缩与解压,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

程序实现了ZIP压缩。共分为2部分 : 压缩(compression)与解压(decompression)

大致功能包括用了多态,递归等JAVA核心技术,可以对单个文件和任意级联文件夹进行压缩和解压。 需在代码中自定义源输入路径和目标输出路径。

package com.han;  import java.io.*;  import java.util.zip.*;   /**   * 程序实现了ZIP压缩。共分为2部分 :   * 压缩(compression)与解压(decompression)   * 

* 大致功能包括用了多态,递归等JAVA核心技术,可以对单个文件和任意级联文件夹进行压缩和解压。 * 需在代码中自定义源输入路径和目标输出路径。 *

* 在本段代码中,实现的是压缩部分;解压部分见本包中decompression部分。 * @author HAN * */ public class CopyOfMyZipCompressing { private int k=1; //定义递归次数变量 public CopyOfMyZipCompressing() { // TODO Auto-generated constructor stub } public static void main(String[] args) { // TODO Auto-generated method stub long startTime=System.currentTimeMillis(); CopyOfMyZipCompressing book=new CopyOfMyZipCompressing(); try { book.zip("C:\\Users\\HAN\\Desktop\\stock\\SpectreCompressed.zip", //自定义的zip输出路径 new File("C:\\Users\\HAN\\Desktop\\CombinedSpectres.txt")); //自定义的源输入路径,即要压缩的文件或文件夹 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } long endTime=System.currentTimeMillis(); System.out.println("耗费时间: "+(endTime-startTime)+" ms"); } private void zip(String zipFileName, File inputFile) throws Exception{ System.out.println("压缩中..."); ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipFileName)); BufferedOutputStream bo=new BufferedOutputStream(out); zip(out,inputFile, "/"+inputFile.getName(),bo); bo.close(); out.close(); //输出流关闭 System.out.println("压缩完成"); } private void zip(ZipOutputStream out, File f, String base, BufferedOutputStream bo) throws Exception{ //方法重载 if (f.isDirectory()){ File[] fl=f.listFiles(); for(int i=0;i

package com.han;   import java.io.*;  import java.util.zip.*;  /**   * 程序实现了ZIP压缩。共分为2部分 :   * 压缩(compression)与解压(decompression)   * 

* 大致功能包括用了多态,递归等JAVA核心技术,可以对单个文件和任意级联文件夹进行压缩和解压。 * 需在代码中自定义源输入路径和目标输出路径。 *

* 在本段代码中,实现的是解压部分;压缩部分见本包中compression部分。 * @author HAN * */ public class CopyOfMyzipDecompressing { public static void main(String[] args) { // TODO Auto-generated method stub long startTime=System.currentTimeMillis(); try { ZipInputStream Zin=new ZipInputStream(new FileInputStream( "C:\\Users\\HAN\\Desktop\\stock\\SpectreCompressed.zip"));//输入源zip路径 BufferedInputStream Bin=new BufferedInputStream(Zin); String Parent="C:\\Users\\HAN\\Desktop"; //输出路径(文件夹目录) File Fout=null; ZipEntry entry; try { while((entry = Zin.getNextEntry())!=null && !entry.isDirectory()){ Fout=new File(Parent,entry.getName()); if(!Fout.exists()){ (new File(Fout.getParent())).mkdirs(); } FileOutputStream out=new FileOutputStream(Fout); BufferedOutputStream Bout=new BufferedOutputStream(out); int b; while((b=Bin.read())!=-1){ Bout.write(b); } Bout.close(); out.close(); System.out.println(Fout+"解压成功"); } Bin.close(); Zin.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } long endTime=System.currentTimeMillis(); System.out.println("耗费时间: "+(endTime-startTime)+" ms"); } }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

0