3

我正在寻找有关通过 RandomAccessFile 阅读 zip 档案的内容。所以,我找到了这个例子: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

4

1 回答 1

4

我认为这是未经审查的代码在互联网上出现并导致问题无穷无尽的情况。

这两个示例中的代码不可能做任何有用的事情。代码可以做任何事情的唯一方法是,如果 zip 文件的内容已经被提取到包含 zip 的文件夹中。

长与短:您不能将 RAF 与 ZipEntry 一起使用,因为 ZipEntry 指的是加密流。您不能对流进行随机访问(除非您缓冲整个内容)。

我真的很有趣:

a) java-tips 文章中的代码没有遵循 Java 的正确命名约定 b) 两篇文章中的代码惊人地相似

下面是展示如何正确使用 ZipInputStream 的示例代码:http: //java.sun.com/developer/technicalArticles/Programming/compression/

于 2012-07-20T03:27:45.927 回答