java 如何读取ftp服务器上的文件夹

分类: 365bet指数 时间: 2025-10-29 16:45:25 作者: admin

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

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

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

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

public class FTPExample {

public static void main(String[] args) {

String server = "ftp.example.com";

int port = 21;

String user = "username";

String pass = "password";

FTPClient ftpClient = new FTPClient();

try {

ftpClient.connect(server, port);

int replyCode = ftpClient.getReplyCode();

if (!FTPReply.isPositiveCompletion(replyCode)) {

System.out.println("Connection failed");

return;

}

boolean success = ftpClient.login(user, pass);

if (!success) {

System.out.println("Could not login to the server");

return;

}

System.out.println("Connected and logged in to the server");

String remoteDirectory = "/path/to/remote/folder";

boolean changed = ftpClient.changeWorkingDirectory(remoteDirectory);

if (changed) {

System.out.println("Directory changed successfully.");

} else {

System.out.println("Failed to change directory.");

return;

}

FTPFile[] files = ftpClient.listFiles();

for (FTPFile file : files) {

if (file.isFile()) {

String remoteFile = file.getName();

InputStream inputStream = ftpClient.retrieveFileStream(remoteFile);

BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

String line;

while ((line = reader.readLine()) != null) {

System.out.println(line);

}

reader.close();

inputStream.close();

ftpClient.completePendingCommand();

}

}

} catch (IOException ex) {

System.out.println("Oops! Something went wrong");

ex.printStackTrace();

} finally {

try {

if (ftpClient.isConnected()) {

ftpClient.logout();

ftpClient.disconnect();

}

} catch (IOException ex) {

ex.printStackTrace();

}

}

}

}