我正在寻找有关通过RandomAccessFile阅读zip-archives的内容。所以,我找到了这个例子:http://www.java2s.com/Code/JavaAPI/java.io/RandomAccessFilereadLine.htm 但它对我不起作用,它告诉我没有这样的文件或目录,但文件路径是正确的。这个例子不正确吗?
更新:来自docs.oracle.com:
RandomAccessFile(String name, String mode)
创建一个随机访问文件流,以便从具有指定名称的文件中读取,也可以选择写入。
他们尝试使用entryName创建RAF作为此示例中的“名称”参数,这很奇怪
还有一个例子有同样的事情:http://www.java-tips.org/java-se-tips/java.util.zip/how-to-read-files-within-a-zip-file-3.html
答案 0 :(得分:3)
我认为这是一个案例,未经审查的代码会在互联网上出现并导致问题无法解决。
这两个例子中的代码无法做任何有用的事情。代码执行任何操作的唯一方法是将zip文件的内容提取到包含zip的文件夹中。
长短:你不能将RAF与ZipEntry一起使用,因为ZipEntry指的是加密流。你不能在流上做随机访问(除非你缓冲整个事情)。
对我来说真的很有趣:
a)java-tips文章中的代码没有遵循Java的正确命名约定 b)两篇文章中的代码非常相似
以下是展示如何正确使用ZipInputStream的示例代码:http://java.sun.com/developer/technicalArticles/Programming/compression/