Java 有没有办法将完整的ZipInputStream转换为单个InputStream,并将其保存为磁盘上的zip文件

Java 有没有办法将完整的ZipInputStream转换为单个InputStream,并将其保存为磁盘上的zip文件,java,aem,zipinputstream,Java,Aem,Zipinputstream,这与AEM Translation API有关,TranslationObject可以将上下文包作为ZipStreamInput提供给我们,我们需要将该输入转换为Base64字符串以作为XML的一部分发送,或者转换为实际zip文件以在本地保存 我尝试了很多方法,但都得到了一个0字节的文件,很可能是因为ZipInputStream的工作方式需要使用getNextEntry。(同样,API强迫我们使用ZipInputStream) 如有任何见解,将不胜感激 另一种解决方案是提取驱动器上的流,并从中创

这与AEM Translation API有关,TranslationObject可以将上下文包作为ZipStreamInput提供给我们,我们需要将该输入转换为Base64字符串以作为XML的一部分发送,或者转换为实际zip文件以在本地保存

我尝试了很多方法,但都得到了一个0字节的文件,很可能是因为ZipInputStream的工作方式需要使用getNextEntry。(同样,API强迫我们使用ZipInputStream)

如有任何见解,将不胜感激


另一种解决方案是提取驱动器上的流,并从中创建一个新的zip,将该文件作为inputstream打开,然后进行转换,这让人觉得非常费解。您是否尝试过将ZipInputStream(使用read)方法读取到BeufferedOutStream()中,然后将其写入文件?是的,它给了我一个1字节的流,其中包含-1。我假设您正在对该流使用GetTranslationObject预览方法。如果是这种情况,那么一个1字节的流意味着您的页面预览失败(可能是某些组件异常等)。翻译框架是否正常工作?翻译人员能否在预览期间查看页面?是的,这就是方法。是的,预览是有效的,因为我可以使用bootstrap(AEM的Translation API示例项目)方法在本地驱动器上解压流。ZipInputStream似乎是一个奇怪的野兽,它的工作方式与普通InputStream的工作方式不同。如果您调用nextry,那么您将无法访问整个流。