Bom*_*os9 3 java compression inputstream tar
嗨,伙计们,测试我的tar.gz提取工具,我发现抛出异常:
java.io.EOFException: Unexpected end of ZLIB input stream
at java.util.zip.InflaterInputStream.fill(Unknown Source)
at java.util.zip.InflaterInputStream.read(Unknown Source)
at java.util.zip.GZIPInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at it.uniroma2.informatica.specialistica.IO.ScanCompressedFileUtil.main(ScanCompressedFileUtil.java:60
所以第60行的代码是:
BufferedReader bufLe= reader.remove();
try {
while ( bufLe.ready() ){
System.out.println(" "+bufLe.readLine());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
调用buffer.readLine()的地方抛出异常.当我打开tar.gz时,我保留了所有单个文件的流,比如BuffReader,然后我将它们放到一个linkedList中,然后我关闭了文件tar.gz打开的缓冲区.但是当我在链表中弹出一个元素然后尝试逐行读取时.我有这个例子..
SOmeOne有一个IDEa为什么我有例外??? 当我遍历tar.gz中的文件时,也许我错了somthin ?? 这样做我有代码:
TarInputStream is = new TarInputStream(gzipInputStream);
TarEntry entryx = null;
try {
while((entryx = is.getNextEntry()) != null) {
InputStream tmpInx = new StreamingTarEntry(is, entryx.getSize());
// questo viene invocato perchè il file da lettere è un file txt
manageTxtinsideTAR(tmpInx , buffer);
// I add the stream to a linked list
Run Code Online (Sandbox Code Playgroud)
类STREAMINGTARENTRY扩展了FilterInputStream,因此它只包装了流.
它可能与JVM错误有关http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=53ede10dc8803210b03577eac43?bug_id=6519463
有关此相关问题的详细信息,请参阅我的回答/sf/answers/1319161861/
| 归档时间: |
|
| 查看次数: |
25701 次 |
| 最近记录: |