首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在java中提取zip文件中的特定文件?

如何在java中提取zip文件中的特定文件?
EN

Stack Overflow用户
提问于 2018-07-25 00:29:08
回答 2查看 0关注 0票数 0

我需要在系统中向客户提供zip文件的视图,并允许客户下载选择的文件。

  1. 解析zip文件并在网页上显示。并记住后端的每个zipentry位置。
  2. 客户单击下载按钮时下载指定的文件。

现在我已经记住了所有的zipentry位置,但有没有java zip工具来解压缩zip文件的指定位置?

EN

回答 2

Stack Overflow用户

发布于 2018-07-25 08:42:15

你可以使用以下代码从zip中提取特定文件:

代码语言:txt
复制
public static void main(String[] args) throws Exception{
        String fileToBeExtracted="fileName";
        String zipPackage="zip_name_with_full_path";
        OutputStream out = new FileOutputStream(fileToBeExtracted);
        FileInputStream fileInputStream = new FileInputStream(zipPackage);
        BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream );
        ZipInputStream zin = new ZipInputStream(bufferedInputStream);
        ZipEntry ze = null;
        while ((ze = zin.getNextEntry()) != null) {
            if (ze.getName().equals(fileToBeExtracted)) {
                byte[] buffer = new byte[9000];
                int len;
                while ((len = zin.read(buffer)) != -1) {
                    out.write(buffer, 0, len);
                }
                out.close();
                break;
            }
        }
        zin.close();

    }
票数 0
EN

Stack Overflow用户

发布于 2018-07-25 10:14:04

你可以这样做:

代码语言:txt
复制
ZipFile zf = new ZipFile(file);
try {
  InputStream in = zf.getInputStream(zf.getEntry("file.txt"));
  // ... read from 'in' as normal
} finally {
  zf.close();
}

我还没有尝试过,但是在Java7ZipFileSystem中,您可以尝试像这样从zip文件中提取file.txt文件。

代码语言:txt
复制
Path zipfile = Paths.get("/samples/ziptest.zip");
FileSystem fs = FileSystems.newFileSystem(zipfile, env, null);
final Path root = fs.getPath("/file.TXT");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005706

复制
相关文章

相似问题

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