当前位置:首页 > Java

java如何读取ftp上的文件

2026-02-05 10:24:04Java

读取FTP文件的方法

使用Apache Commons Net库可以方便地实现FTP文件读取操作。需要添加以下依赖到项目中:

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

基本连接与文件下载

建立FTP连接并下载文件到本地:

FTPClient ftpClient = new FTPClient();
try {
    ftpClient.connect("ftp.example.com", 21);
    ftpClient.login("username", "password");
    ftpClient.enterLocalPassiveMode();

    FileOutputStream outputStream = new FileOutputStream("local_file.txt");
    boolean success = ftpClient.retrieveFile("remote_file.txt", outputStream);
    outputStream.close();

    if (success) {
        System.out.println("File downloaded successfully.");
    }
} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {
        if (ftpClient.isConnected()) {
            ftpClient.logout();
            ftpClient.disconnect();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

直接读取文件内容

不保存到本地,直接读取文件内容:

InputStream inputStream = ftpClient.retrieveFileStream("remote_file.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

String line;
while ((line = reader.readLine()) != null) {
    System.out.println(line);
}

reader.close();
inputStream.close();

处理大文件

对于大文件建议使用缓冲读取:

InputStream inputStream = ftpClient.retrieveFileStream("large_file.txt");
byte[] buffer = new byte[4096];
int bytesRead;

while ((bytesRead = inputStream.read(buffer)) != -1) {
    // 处理读取到的数据
}

inputStream.close();

注意事项

确保设置正确的文件类型:

ftpClient.setFileType(FTP.BINARY_FILE_TYPE);  // 二进制文件
// 或
ftpClient.setFileType(FTP.ASCII_FILE_TYPE);   // 文本文件

使用被动模式通常能解决防火墙问题:

ftpClient.enterLocalPassiveMode();

处理完成后必须调用completePendingCommand:

java如何读取ftp上的文件

ftpClient.completePendingCommand();

标签: 文件java
分享给朋友:

相关文章

php实现文件下载

php实现文件下载

PHP 实现文件下载的方法 使用 header() 函数强制下载 设置正确的 HTTP 头信息,强制浏览器下载文件而不是直接打开。 $file = 'path/to/file.pdf'; if (f…

旋转相册制作css文件

旋转相册制作css文件

旋转相册制作CSS文件 旋转相册通常通过CSS动画和3D变换实现,以下是一个完整的CSS文件示例,用于创建一个3D旋转相册效果。 基础HTML结构 在CSS文件之前,需确保HTML结构包含相…

java如何

java如何

Java 基础语法 Java 是一种面向对象的编程语言,语法相对严谨。每个 Java 程序必须包含一个 main 方法作为程序入口。以下是一个简单的 Java 程序示例: public class…

如何学习java

如何学习java

学习Java的步骤 理解基础知识 从Java的基本语法开始,包括变量、数据类型、运算符、控制流(if-else、循环)等。掌握这些基础概念是后续学习的基石。 学习面向对象编程(OOP) Java是一…

java如何创建对象

java如何创建对象

创建对象的基本方法 在Java中,创建对象主要通过new关键字调用构造函数完成。基本语法为: ClassName objectName = new ClassName(); 例如创建String对象…

java如何输入字符串

java如何输入字符串

使用 Scanner 类 在 Java 中,可以通过 java.util.Scanner 类来输入字符串。以下是一个示例代码: import java.util.Scanner; public c…