Java如何从FTP服务器下载文件?

本示例演示如何从FTP服务器下载文件。要下载文件,我们首先连接到FTP服务器,然后通过提供username和登录password。要下载文件,我们调用对象的retrieveFile()方法FTPClient。此方法采用两个参数,远程文件名和OutputStream要保存下载内容的本地文件的。

package org.nhooo.example.commons.net;

import org.apache.commons.net.ftp.FTPClient;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class FTPDownloadDemo {
    public static void main(String[] args) {
        // 要下载的本地文件名和远程文件名。
        String filename = "data.txt";

        FTPClient client = new FTPClient();
        try (OutputStream os = new FileOutputStream(filename)) {
            client.connect("ftp.example.org");
            client.login("admin", "admin123**");

            // 从FTP服务器下载文件。
            boolean status = client.retrieveFile(filename, os);
            System.out.println("status = " + status);
            System.out.println("reply  = " + client.getReplyString());
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                client.disconnect();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

如果下载过程成功,您将看到以下输出:

status = true
reply  = 226 Transfer complete.

Maven依赖

<!-- http://repo1.maven.org/maven2/commons-net/commons-net/3.6/commons-net-3.6.jar -->
<dependency>
    <groupId>commons-net</groupId>
    <artifactId>commons-net</artifactId>
    <version>3.6</version>
</dependency>