【发布时间】:2013-02-25 16:21:00
【问题描述】:
我正在尝试将 ZipArchiveEntry 读取到字符串。我有下面的代码,我遇到了异常
我的代码如下
StringWriter writer = new StringWriter();
IOUtils.copy(zipFile.getInputStream(zipArchiveEntry),
writer,
org.apache.commons.io.Charsets.UTF_8);
我得到以下异常
java.util.zip.ZipException: invalid stored block lengths
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:147)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.Reader.read(Reader.java:123)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2001)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1980)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:1957)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:1907)
真的坚持了很久。请帮忙。
【问题讨论】:
-
你能用普通的压缩程序打开压缩文件吗?
-
@jtahlborn 非常好。
-
考虑使用新的 NIO.2 File API。 Oracle JDK 带有用于 ZIP/JAR 的文件系统提供程序。
标签: java apache-commons-io apache-commons-compress