Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.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 Android:通过ContentUri提供密码保护的zip支持_Java_Android_Zip_Android Contentprovider - Fatal编程技术网

Java Android:通过ContentUri提供密码保护的zip支持

Java Android:通过ContentUri提供密码保护的zip支持,java,android,zip,android-contentprovider,Java,Android,Zip,Android Contentprovider,Java本机不支持读取受密码保护的zip文件。我已经检查了这个问题,它指示我使用zip4j库 我这里有不同的场景,有以下限制:- 我只通过contentUri(没有可靠的查询文件路径)获取inputstream,zip4j使用RandomAccessFile进行内部工作 我无法存储文件或无法在内存中保存全部内容 使用上述规则,有没有办法读取zip文件?您可以将InputStream写入文件;不是很理想,但它会起作用。是的,但它会打破我问题中的第二条规则。我不认为不存储本地内容就可以在两者之间

Java本机不支持读取受密码保护的zip文件。我已经检查了这个问题,它指示我使用zip4j库

我这里有不同的场景,有以下限制:-

  • 我只通过contentUri(没有可靠的查询文件路径)获取inputstream,zip4j使用RandomAccessFile进行内部工作
  • 我无法存储文件或无法在内存中保存全部内容

使用上述规则,有没有办法读取zip文件?

您可以将
InputStream
写入文件;不是很理想,但它会起作用。是的,但它会打破我问题中的第二条规则。我不认为不存储本地内容就可以在两者之间转换。我认为唯一不违反规则的其他可能性是,如果您将现有代码重构为使用
BufferedInputStream
或诸如此类的代码。尽管底层API使用的是
RandomAccessFile
,但我相信大多数压缩格式都可以按顺序处理,不依赖于随机访问,至少我熟悉的ZLIB格式就是这样。不过我可能错了。