如何在Java中解压缩加密的ODT OpenDocument

我有一个加密的ODT(打开文档文本)文件,我需要解压缩它. ODT是一个ZIP文件.加密的ODT是普通的ZIP文件,只是ZIP中的一些文件是加密的.

使用ZipFile在测试中工作正常,但我不能真正使用ZipFile,因为我在内存中有一个流,我不想使用文件.

因此我使用ZipInputStream.但是使用ZipInputStream.getNextEntry()会引发可怕的
 只有DEFLATED条目才能有EXT描述符
例外.

根据我的理解,它会抛出ZIP包中的第一个加密文件,例如在content.xml上.因为OpenOffice已经加密了xml文件,所以压缩它可能没有意义,它被存储在未压缩的ZIP包中.

但ZipInputStream似乎有问题,我没有看到解决方法.

是的,加密的ODT文件是由OpenOffice Writer 3.2.1创建的.是的,股票ZipInputStream甚至无法枚举其中的条目.

你能建议什么吗?

最佳答案 你可以看看
ODF Toolkit library是否可行

点赞