Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.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捆绑内存中的zip文件_Java_Zip_Jimfs - Fatal编程技术网

用Java捆绑内存中的zip文件

用Java捆绑内存中的zip文件,java,zip,jimfs,Java,Zip,Jimfs,我需要捆绑几个zip文件(JAR)。 我尝试了以下解决方案: 通过检查输入流的每个条目并将其复制到输出流,将ZipInputStream转换为ZipOutStream(据我所知,这主要是在硬盘上进行的IO密集型操作) 创建内存文件系统,将两个ZIP提取到同一目录,然后再次压缩。我用的是jimfs- 选择2对我来说少了5倍 我正在寻找一个现成的解决方案,用于内存中的zip fs,但没有找到任何解决方案。另外,jimfs不能与java7nio-zipfs结合使用(没有API将zipfs与jimfs结

我需要捆绑几个zip文件(JAR)。 我尝试了以下解决方案:

  • 通过检查输入流的每个条目并将其复制到输出流,将ZipInputStream转换为ZipOutStream(据我所知,这主要是在硬盘上进行的IO密集型操作)

  • 创建内存文件系统,将两个ZIP提取到同一目录,然后再次压缩。我用的是jimfs-

  • 选择2对我来说少了5倍

    我正在寻找一个现成的解决方案,用于内存中的zip fs,但没有找到任何解决方案。另外,jimfs不能与java7nio-zipfs结合使用(没有API将zipfs与jimfs结合使用)

    我的解决方案似乎不干净/没有使用最佳实践,因此我正在寻求建议/现成的解决方案/库,以帮助我在不开发和维护库的情况下实现内存性能

  • 对于给定的zip文件,请查找所有文件条目
  • 将每个条目读取到字节[]
  • 这里有一张地图
  • 为zip文件定义唯一密钥
  • 创建在内存中保存所有读取zip文件的Map>
  • 这个怎么样:

  • 对于给定的zip文件,请查找所有文件条目
  • 将每个条目读取到字节[]
  • 这里有一张地图
  • 为zip文件定义唯一密钥
  • 创建在内存中保存所有读取zip文件的Map>

  • 似乎有一种方法可以将ZipFS与JIMFS捆绑在一起——也就是说,将文件(由JIFS存储在内存中)视为Zip文件系统

      FileSystems.newFileSystem(
          URI.create("jar:" + pathToZipFile.toUri()),
          Collections.singletonMap("create", "true"));
    

    其中pathToZipFile是存储在JIMFS中的jar文件。似乎有一种方法可以将ZipFS与JIMFS捆绑在一起,也就是说,将一个文件(由JIFS存储在内存中)视为Zip文件系统

      FileSystems.newFileSystem(
          URI.create("jar:" + pathToZipFile.toUri()),
          Collections.singletonMap("create", "true"));
    
    其中pathToZipFile是存储在JIMFS中的jar文件