首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有什么java压缩工具?

有没有什么java压缩工具?
EN

Stack Overflow用户
提问于 2009-08-06 08:57:53
回答 3查看 1.3K关注 0票数 1

我需要解压一些文件,在谷歌搜索之后,我还没有找到任何实用工具来做这件事。我知道我可以用内置的java.uitl.zip.*类来做这件事,但是有没有什么实用工具可以让它变得更容易,最好是这样:

SomeClass.unzip("file_name.zip","target_directory");

SomeClass.zip("source_directory","target_file_name.zip",递归);

我不想处理流。只是文件,或者更好的只是文件名...

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-06 09:07:25

问题"What’s a good compression library for Java?“中提到的Deflater/Inflater类怎么样?

我知道目前由Java提出的接口是基于流的,而不是“文件名”-based,但是根据下面关于Java compression的文章,围绕这一点构建一个实用程序类非常简单:

例如,基于文件名的解压缩函数将如下所示:

代码语言:javascript
复制
import java.io.*;
import java.util.zip.*;

public class UnZip {
   final int BUFFER = 2048;
   public static void main (String argv[]) {
      try {
         BufferedOutputStream dest = null;
         FileInputStream fis = new 
       FileInputStream(argv[0]);
         ZipInputStream zis = new 
       ZipInputStream(new BufferedInputStream(fis));
         ZipEntry entry;
         while((entry = zis.getNextEntry()) != null) {
            System.out.println("Extracting: " +entry);
            int count;
            byte data[] = new byte[BUFFER];
            // write the files to the disk
            FileOutputStream fos = new 
          FileOutputStream(entry.getName());
            dest = new 
              BufferedOutputStream(fos, BUFFER);
            while ((count = zis.read(data, 0, BUFFER)) 
              != -1) {
               dest.write(data, 0, count);
            }
            dest.flush();
            dest.close();
         }
         zis.close();
      } catch(Exception e) {
         e.printStackTrace();
      }
   }
}
票数 4
EN

Stack Overflow用户

发布于 2009-08-06 09:07:09

也许Compress from Apache Commons能帮到你。

票数 2
EN

Stack Overflow用户

发布于 2009-08-06 21:50:02

jar是一个伪装的拉链。这是可用的吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1237733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档