Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FTP zip文件提取错误_Java_Exception_Zip - Fatal编程技术网

Java FTP zip文件提取错误

Java FTP zip文件提取错误,java,exception,zip,Java,Exception,Zip,我正在尝试从服务器中提取zip文件(服务器中有一个zip文件。因此,我正在尝试通过FTP提取该文件),我正在使用此代码 byte[] buf = new byte[1024]; ZipInputStream zinstream = new ZipInputStream(Home.ftpClient.retrieveFileStream("HO2BR.br.3162675983055490721.zync")); ZipEntry zentry = zinstream.get

我正在尝试从服务器中提取zip文件(服务器中有一个zip文件。因此,我正在尝试通过FTP提取该文件),我正在使用此代码

  byte[] buf = new byte[1024];

    ZipInputStream zinstream = new ZipInputStream(Home.ftpClient.retrieveFileStream("HO2BR.br.3162675983055490721.zync"));
    ZipEntry zentry = zinstream.getNextEntry();
    System.out.println("Name of current Zip Entry : " + zentry + "\n");
    while (zentry != null) {
        String entryName = zentry.getName();
        System.out.println("Name of  Zip Entry : " + entryName);
        FileOutputStream outstream = new FileOutputStream(entryName);
        int n;

        while ((n = zinstream.read(buf, 0, 1024)) > -1) {
            outstream.write(buf, 0, n);

        }
        System.out.println("Successfully Extracted File Name : " + entryName);
        outstream.close();

        zinstream.closeEntry();
        zentry = zinstream.getNextEntry();
    }
    zinstream.close();

}
ZipInputStream(Home.ftpClient.retrieveFileStream(“HO2BR.br.3162675983055490721.zync”); 要输入流,请分配FTPClient的retrieveFileStream

执行程序时发生此错误

java.util.zip.ZipException:距离太远无效 位于java.util.zip.InflaterInputStream.read(InflaterInputStream.java:164)


如何解决此异常?

最有可能的是
ftpClient.retrieveFileStream
不支持查找。Zip“目录”条目出现在文件的最末尾。因此,“打开”第一项需要能够备份到文件的开头以读取该项


您需要将zip文件下载到本地文件,然后从那里提取内容。

解决方案是将传输模式从
ASCII
更改为
BINARY

嗨,可以从服务器提取zip文件,我的意思是不下载文件,我需要将其提取到服务器。