java打压缩包工具方法分享(打压缩包机器)

本文目录一览:

怎样用Java生成ZIP文件

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import org.apache.tools.zip.ZipEntry;

import org.apache.tools.zip.ZipOutputStream;

/**

* @project: Test

* @author chenssy

* @date 2013-7-28

* @Description: 文件压缩工具类

*                   将指定文件/文件夹压缩成zip、rar压缩文件

*/

public class CompressedFileUtil {

  /**

   * 默认构造函数

   */

  public CompressedFileUtil(){

   

  }

  /**

   * @desc 将源文件/文件夹生成指定格式的压缩文件,格式zip

   * @param resourePath 源文件/文件夹

   * @param targetPath  目的压缩文件保存路径

   * @return void

   * @throws Exception

   */

  public void compressedFile(String resourcesPath,String targetPath) throws Exception{

      File resourcesFile = new File(resourcesPath);     //源文件

      File targetFile = new File(targetPath);           //目的

      //如果目的路径不存在,则新建

      if(!targetFile.exists()){  

          targetFile.mkdirs();

      }

   

      String targetName = resourcesFile.getName()+”.zip”;   //目的压缩文件名

      FileOutputStream outputStream = new FileOutputStream(targetPath+”\\”+targetName);

      ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(outputStream));

   

      createCompressedFile(out, resourcesFile, “”);

   

      out.close();

  }

  /**

   * @desc 生成压缩文件。

   *                  如果是文件夹,则使用递归,进行文件遍历、压缩

   *       如果是文件,直接压缩

   * @param out  输出流

   * @param file  目标文件

   * @return void

   * @throws Exception

   */

  public void createCompressedFile(ZipOutputStream out,File file,String dir) throws Exception{

      //如果当前的是文件夹,则进行进一步处理

      if(file.isDirectory()){

          //得到文件列表信息

          File[] files = file.listFiles();

          //将文件夹添加到下一级打包目录

          out.putNextEntry(new ZipEntry(dir+”/”));

       

          dir = dir.length() == 0 ? “” : dir +”/”;

       

          //循环将文件夹中的文件打包

          for(int i = 0 ; i files.length ; i++){

              createCompressedFile(out, files[i], dir + files[i].getName());         //递归处理

          }

      }

      else{   //当前的是文件,打包处理

          //文件输入流

          FileInputStream fis = new FileInputStream(file);

       

          out.putNextEntry(new ZipEntry(dir));

          //进行写操作

          int j =  0;

          byte[] buffer = new byte[1024];

          while((j = fis.read(buffer)) 0){

              out.write(buffer,0,j);

          }

          //关闭输入流

          fis.close();

      }

  }

  public static void main(String[] args){

      CompressedFileUtil compressedFileUtil = new CompressedFileUtil();

   

      try {

          compressedFileUtil.compressedFile(“G:\\zip”, “F:\\zip”);

          System.out.println(“压缩文件已经生成…”);

      } catch (Exception e) {

          System.out.println(“压缩文件生成失败…”);

          e.printStackTrace();

      }

  }

}

 运行程序结果如下:

 压缩之前的文件目录结构:

如果是使用java.util下的java.util.zip进行打包处理,可能会出现中文乱码问题,这是因为java的zip方法不支持编码格式的更改,我们可以使用ant.java下的zip工具类来进行打包处理。所以需要将ant.jar导入项目的lib目录下。

如何使用JAVA代码压缩PDF文件

用java代码压缩应用到程序了,代码一般是比较复杂的,对pdf文件的mate标签优化,这类标签包括三类,pdf文件不是网页就是个文件,何况我们可以用pdf压缩工具压缩,下面有个解决方法,楼主可以做参照。

1:点击打开工具,打开主页面上有三个功能进行选择,我们选择pdf文件压缩。

2:这这个页面中我们选择pdf文件在这里打开,点击“添加文件”按钮将文件添加进来。

3:然后在页面中点击“开始压缩”就可以开始压缩文件了。

4:压缩完成的文件页面会显示已经完成。

如何使用java压缩文件夹成为zip包

在JDK中有一个zip工具类:

java.util.zip    Provides classes for reading and writing the standard ZIP and

GZIP file formats.

使用此类可以将文件夹或者多个文件进行打包压缩操作。

在使用之前先了解关键方法:

ZipEntry(String name)         Creates a new zip entry with the specified name.

使用ZipEntry的构造方法可以创建一个zip压缩文件包的实例,然后通过ZipOutputStream将待压缩的文件以流的形式写进该压缩包中。具体实现代码如下:

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.util.zip.ZipEntry;  

import java.util.zip.ZipOutputStream;  

/** 

 * 将文件夹下面的文件 

 * 打包成zip压缩文件 

 *  

 * @author admin 

 * 

 */  

public final class FileToZip {  

  

    private FileToZip(){}  

      

    /** 

     * 将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下 

     * @param sourceFilePath :待压缩的文件路径 

     * @param zipFilePath :压缩后存放路径 

     * @param fileName :压缩后文件的名称 

     * @return 

     */  

    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 +”.zip”);  

                if(zipFile.exists()){  

                    System.out.println(zipFilePath + “目录下存在名字为:” + fileName +”.zip” +”打包文件.”);  

                }else{  

                    File[] sourceFiles = sourceFile.listFiles();  

                    if(null == sourceFiles || sourceFiles.length1){  

                        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;isourceFiles.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, 0, 1024*10)) != -1){  

                                zos.write(bufs,0,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 main(String[] args){  

        String sourceFilePath = “D:\\TestFile”;  

        String zipFilePath = “D:\\tmp”;  

        String fileName = “12700153file”;  

        boolean flag = FileToZip.fileToZip(sourceFilePath, zipFilePath, fileName);  

        if(flag){  

            System.out.println(“文件打包成功!”);  

        }else{  

            System.out.println(“文件打包失败!”);  

        }  

    }  

      

}

java中的压缩原理是什么?

什么是压缩文件?

简单的说,就是经过压缩软件压缩的文件叫压缩文件,压缩的原理是把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0

的写法60,来减少该文件的空间。

■怎么压缩文件?

首先要安装压缩软件,现在比较流行的是WinRAR「一种高效快速的文件压缩软件(中文版)」。

其次是建立一个压缩包:选择你要制作成压缩包的文件或文件夹,当然你也可也多选,方法同资源管理器,也就是按住Ctrl或Shift再选择文件(文件夹)。

选取完毕之后,就可以单击工具栏上的“压缩”按钮,在这里你可以选择压缩格式:RAR和ZIP。

如果你想得到较大的压缩率,建议选择RAR格式。

各个选项选择好以后,单击确定按钮就开始制作压缩包了,非常方便。有时候大家会遇到这个问题,就是你在一个论坛里要上传一些文件压缩包,压缩包大小有3M,但是论坛限制会员上传大小只有2M,怎么办呢?

其实办法很简单,就是在你压缩这个文件时,分成几个带分卷压缩包,分卷包大小设置为2M即可,比如:原来文件名为123.rar(3M),压缩成分卷包后为123.part1.rar(2M)与123.part2.rar(1M)两个文件,这样你就可以上传了。

具体方法如下:

1、在要压缩的文件上点右键

2、添加到压缩文件….

3、选常规

4、压缩方式选最好

5、批定压缩分卷大小(按字节计算),1M

=

1024K,1K

=

1024字节,填写数字即可

当你下载了带有分卷的压缩包后,如何解压文件呢?

具体方法如下:

1、把所有的压缩分卷全部下载完整

2、所有分卷必须在同一个文件夹内

3、然后双击解压第一个分卷,即可

注:分卷解压的文件必须是连续的,若分卷未下载完整,则解压时自然会提示需要下一压缩分卷

如何使用java压缩文件夹成为zip包(最简单的

import java.io.File;

public class ZipCompressorByAnt {

private File zipFile;

/**

* 压缩文件构造函数

* @param pathName 最终压缩生成的压缩文件:目录+压缩文件名.zip

*/

public ZipCompressorByAnt(String finalFile) {

zipFile = new File(finalFile);

}

/**

* 执行压缩操作

* @param srcPathName 需要被压缩的文件/文件夹

*/

public void compressExe(String srcPathName) {

System.out.println(“srcPathName=”+srcPathName);

File srcdir = new File(srcPathName);

if (!srcdir.exists()){

throw new RuntimeException(srcPathName + “不存在!”);

}

Project prj = new Project();

Zip zip = new Zip();

zip.setProject(prj);

zip.setDestFile(zipFile);

FileSet fileSet = new FileSet();

fileSet.setProject(prj);

fileSet.setDir(srcdir);

//fileSet.setIncludes(“**/*.java”); //包括哪些文件或文件夹 eg:zip.setIncludes(“*.java”);

//fileSet.setExcludes(…); //排除哪些文件或文件夹

zip.addFileset(fileSet);

zip.execute();

}    

}

public class TestZip {

public static void main(String[] args) {

ZipCompressorByAnt zca = new ZipCompressorByAnt(“E:\\test1.zip “);

zca.compressExe(“E:\\test1”);

}  

}

/*如果 出现ant 的 52  51 50 等版本问题 可以去找对应的ant-1.8.2.jar     我开始用的ant-1.10.1.jar 就是这个包版本高了  一直报verson 52 版本问题*/

如何用JAVA把内存里的二进制文件打包成ZIP包

在JDK中有一个zip工具类:blockquotejava.util.zip Provides classes for reading and writing the standard ZIP and

GZIP file formats./blockquote使用此类可以将文件夹或者多个文件进行打包压缩操作。在使用之前先了解关键方法:blockquoteZipEntry(String name) Creates a new zip entry with the specified name./blockquote使用ZipEntry的构造方法可以创建一个zip压缩文件包的实例,然后通过ZipOutputStream将待压缩的文件以流的形式写进该压缩包中。具体实现代码如下:pre t=”code” l=”java”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.util.zip.ZipEntry;

import java.util.zip.ZipOutputStream;

/**

* 将文件夹下面的文件

* 打包成zip压缩文件

*

* @author admin

*

*/

public final class FileToZip {

private FileToZip(){}

/**

* 将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下

* @param sourceFilePath :待压缩的文件路径

* @param zipFilePath :压缩后存放路径

* @param fileName :压缩后文件的名称

* @return

*/

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 +”.zip”);

if(zipFile.exists()){

System.out.println(zipFilePath + “目录下存在名字为:” + fileName +”.zip” +”打包文件.”);

}else{

File[] sourceFiles = sourceFile.listFiles();

if(null == sourceFiles || sourceFiles.length1){

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;isourceFiles.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, 0, 1024*10)) != -1){

zos.write(bufs,0,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 main(String[] args){

String sourceFilePath = “D:\\TestFile”;

String zipFilePath = “D:\\tmp”;

String fileName = “file”;

boolean flag = FileToZip.fileToZip(sourceFilePath, zipFilePath, fileName);

if(flag){

System.out.println(“文件打包成功!”);

}else{

System.out.println(“文件打包失败!”);

}

}

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/301342.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-30 16:08
下一篇 2024-12-30 16:08

相关推荐

  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • 解决.net 6.0运行闪退的方法

    如果你正在使用.net 6.0开发应用程序,可能会遇到程序闪退的情况。这篇文章将从多个方面为你解决这个问题。 一、代码问题 代码问题是导致.net 6.0程序闪退的主要原因之一。首…

    编程 2025-04-29
  • ArcGIS更改标注位置为中心的方法

    本篇文章将从多个方面详细阐述如何在ArcGIS中更改标注位置为中心。让我们一步步来看。 一、禁止标注智能调整 在ArcMap中设置标注智能调整可以自动将标注位置调整到最佳显示位置。…

    编程 2025-04-29
  • Python创建分配内存的方法

    在python中,我们常常需要创建并分配内存来存储数据。不同的类型和数据结构可能需要不同的方法来分配内存。本文将从多个方面介绍Python创建分配内存的方法,包括列表、元组、字典、…

    编程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一个类的构造函数,在创建对象时被调用。在本篇文章中,我们将从多个方面详细讨论init方法的作用,使用方法以及注意点。 一、定义init方法 在Pyth…

    编程 2025-04-29
  • 使用Vue实现前端AES加密并输出为十六进制的方法

    在前端开发中,数据传输的安全性问题十分重要,其中一种保护数据安全的方式是加密。本文将会介绍如何使用Vue框架实现前端AES加密并将加密结果输出为十六进制。 一、AES加密介绍 AE…

    编程 2025-04-29
  • Python中读入csv文件数据的方法用法介绍

    csv是一种常见的数据格式,通常用于存储小型数据集。Python作为一种广泛流行的编程语言,内置了许多操作csv文件的库。本文将从多个方面详细介绍Python读入csv文件的方法。…

    编程 2025-04-29
  • 用不同的方法求素数

    素数是指只能被1和自身整除的正整数,如2、3、5、7、11、13等。素数在密码学、计算机科学、数学、物理等领域都有着广泛的应用。本文将介绍几种常见的求素数的方法,包括暴力枚举法、埃…

    编程 2025-04-29
  • Python学习笔记:去除字符串最后一个字符的方法

    本文将从多个方面详细阐述如何通过Python去除字符串最后一个字符,包括使用切片、pop()、删除、替换等方法来实现。 一、字符串切片 在Python中,可以通过字符串切片的方式来…

    编程 2025-04-29
  • 用法介绍Python集合update方法

    Python集合(set)update()方法是Python的一种集合操作方法,用于将多个集合合并为一个集合。本篇文章将从以下几个方面进行详细阐述: 一、参数的含义和用法 Pyth…

    编程 2025-04-29

发表回复

登录后才能评论