1

我正在使用 Apache Commons Net 3.3 来处理 Java 应用程序中的 FTP 传输。

下载似乎工作正常,但我的速度比本地互联网连接上传速度慢得多。

将文件数据写入流的代码如下所示:

        BufferedOutputStream out = new BufferedOutputStream(ftp.getOutputStream(prt));
        BufferedInputStream in = new BufferedInputStream(prov.getInputStream(s));
        byte[] buff = new byte[BUFF_SIZE];
        int len;
        while ((len = in.read(buff)) >= 0 && !prog.isCanceled()) {
            out.write(buff, 0, len);
            total += len;
            prog.setProgress((int) (Math.round((total / combo) * 100)));
        }

        in.close();
        out.close();

BUFF_SIZE = 16kB

我通过以下方式将 FTPClient 缓冲区大小也设置为 16kBsetBufferSize

问题不在于服务器或我的互联网连接,因为使用 Filezilla 作为 FTP 客户端以更合理的速度进行上传。

Java 6 和 7 JVM 似乎也会出现此问题。

有没有人知道为什么会这样?Commons Net 或 Java 有问题吗?还是我没有正确配置什么?

4

1 回答 1

0

Same problem - using SDK 1.6 resolve problem, but also try to find better way

UPD: Solved (see comments)

于 2015-04-15T14:06:16.507 回答