Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

Java ftp下载文件到本地


在 Java 中,您可以使用多种方式来下载 FTP 服务器上的文件到本地。以下是三种常见的实现方式,包括步骤流程、Maven 和 Gradle 的依赖坐标以及示例代码:

使用 Apache Commons Net 库

Apache Commons Net 库是一个流行的 Java 库,用于处理网络协议,包括 FTP。以下是使用 Apache Commons Net 库下载 FTP 文件的步骤:

Maven 依赖:

<dependency>
    <groupId>commons-net</groupId>
    <artifactId>commons-net</artifactId>
    <version>3.8.0</version>
</dependency>

Gradle 依赖:

implementation group: 'commons-net', name: 'commons-net', version: '3.8.0'

示例代码:

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import java.io.FileOutputStream;
import java.io.IOException;

public class FTPDownloader {
    public static void main(String[] args) {
        String server = "ftp.example.com";
        int port = 21;
        String username = "your_username";
        String password = "your_password";
        String remoteFilePath = "/path/to/remote/file.txt";
        String localFilePath = "/path/to/local/file.txt";

        FTPClient ftpClient = new FTPClient();
        try {
            ftpClient.connect(server, port);
            ftpClient.login(username, password);
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

            FileOutputStream fos = new FileOutputStream(localFilePath);
            boolean success = ftpClient.retrieveFile(remoteFilePath, fos);
            fos.close();

            if (success) {
                System.out.println("File downloaded successfully!");
            } else {
                System.out.println("Failed to download file.");
            }

            ftpClient.logout();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (ftpClient.isConnected()) {
                    ftpClient.disconnect();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

使用 Java 的内置 FTP 支持

Java 自带了 FTP 支持,您可以使用 java.net.URLjava.io 包来下载 FTP 文件。这种方法不需要额外的依赖。

示例代码:

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;

public class FTPDownloader {
    public static void main(String[] args) {
        String ftpUrl = "ftp://username:password@ftp.example.com/path/to/remote/file.txt";
        String localFilePath = "/path/to/local/file.txt";

        try (InputStream inputStream = new URL(ftpUrl).openStream();
             FileOutputStream outputStream = new FileOutputStream(localFilePath)) {

            byte[] buffer = new byte[1024];
            int bytesRead;

            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }

            System.out.println("File downloaded successfully!");
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("Failed to download file.");
        }
    }
}

使用 Java FTP 库-FTP4J

FTP4J 是一个纯 Java 实现的 FTP 客户端库。以下是使用 FTP4J 下载 FTP 文件的步骤:

Maven 依赖:

<dependency>
    <groupId>it.sauronsoftware.ftp4j</groupId>
    <artifactId>ftp4j</artifactId>
    <version>1.7.2</version>
</dependency>

Gradle 依赖:

implementation group: 'it.sauronsoftware.ftp4j', name: 'ftp4j', version: '1.7.2'

示例代码:

import it.sauronsoftware.ftp4j.FTPClient;

public class FTPDownloader {
    public static void main(String[] args) {
        String server = "ftp.example.com";
        String username = "your_username";
        String password = "your_password";
        String remoteFilePath = "/path/to/remote/file.txt";
        String localFilePath = "/path/to/local/file.txt";

        FTPClient client = new FTPClient();

        try {
            client.connect(server);
            client.login(username, password);
            client.download(remoteFilePath, new java.io.File(localFilePath));
            System.out.println("File downloaded successfully!");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Failed to download file.");
        } finally {
            try {
                client.disconnect(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

这些是在 Java 中下载 FTP 文件的三种常见方式。您可以根据自己的需求选择其中一种,并根据示例代码进行自定义。确保替换示例中的 FTP 服务器信息、用户名、密码以及文件路径信息。

我将为你介绍两种常用的方法:使用ApacheCommonsNet库和使用JDK内置的FTP相关类。步骤流程:添加Maven依赖:编写代码:# ...
在Java中批量下载FTP服务器上的文件有多种方式,其中一些常见的方式包括使用ApacheCommonsNet库和使用Java的内置类库。# ...
###使用FileOutputStream这是一种基本的文件写入方式,可以将数据写入字节流中,然后写入到文件中。示例代码:###使用File ...
下面我将介绍三种常见的方法:使用Java标准库的URLConnection,使用ApacheHttpClient库,以及使用Java的NIO ...
在Java中进行文件下载有多种方式,其中一些主要的方式包括使用Java标准库(java.示例代码:###使用ApacheHttpClient ...