Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有java压缩实用程序吗_Java_Compression - Fatal编程技术网

有java压缩实用程序吗

有java压缩实用程序吗,java,compression,Java,Compression,我需要(取消)压缩一些文件,在谷歌搜索之后,我还没有找到任何实用程序。我知道我可以用内置的java.uitl.zip.*类来实现,但是没有任何实用程序,可以让它更简单,最好是这样: 解压(“file_name.zip”,“target_目录”) 或 zip(“源目录”、“目标文件名”.zip”,递归) 我不想处理流。仅仅是文件,或者更好的只是文件名…也许可以帮助您。也许可以帮助您。问题“”中提到的类如何 我知道Java目前提出的接口是基于流的,而不是基于“文件名”的,但根据下面的文章,围绕它构建

我需要(取消)压缩一些文件,在谷歌搜索之后,我还没有找到任何实用程序。我知道我可以用内置的java.uitl.zip.*类来实现,但是没有任何实用程序,可以让它更简单,最好是这样:

解压(“file_name.zip”,“target_目录”)

zip(“源目录”、“目标文件名”.zip”,递归)

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

也许可以帮助您。

也许可以帮助您。

问题“”中提到的类如何

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

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

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();
      }
   }
}
问题“”中提到的课程如何

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

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

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();
      }
   }
}

罐子是一个伪装的拉链。那有用吗?

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

刚刚添加了一个基于文件名的示例刚刚添加了一个基于文件名的示例我不喜欢的是我总是要处理流。我觉得它使用起来很简单。唯一需要处理的是文件,事实上是文件名…我不喜欢的是我总是要处理流。我觉得它使用起来很简单。唯一需要处理的是文件,事实上是文件名…我正在寻找更简单的东西。没有流,最大的文件,事实上是文件名…因为我只需要将一个zipe提取到临时目录中(提取的文件将由其他逻辑处理),所以我做了类似的事情。我只是想知道没有更简单的方法,因为我认为几乎每个想提取zip的人都必须写类似的东西。在java世界呆了这么多年后,我总是惊讶于简单的事情可以做得越来越复杂:)无论如何,答案是thx…@jim我知道java并不是以简单的方式思考的。。不管怎么说,这似乎是最好的解决方案->接受它“总是对简单的事情可以做得复杂而复杂感到惊讶”是我所指的。只是一个java笑话,无意冒犯。我正在寻找更简单的东西。没有流,最大的文件,事实上是文件名…因为我只需要将一个zipe提取到临时目录中(提取的文件将由其他逻辑处理),所以我做了类似的事情。我只是想知道没有更简单的方法,因为我认为几乎每个想提取zip的人都必须写类似的东西。在java世界呆了这么多年后,我总是惊讶于简单的事情可以做得越来越复杂:)无论如何,答案是thx…@jim我知道java并不是以简单的方式思考的。。不管怎么说,这似乎是最好的解决方案->接受它“总是对简单的事情可以做得复杂而复杂感到惊讶”是我所指的。只是一个java笑话,无意冒犯。