pom依赖:
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.6</version>
</dependency>
java代码:
package com.cong.quartz.util;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import java.io.IOException;
import java.io.InputStream;
/**
* ftp读取文件
*/
public class FtpUtils {
public static final String ip = "49.232.136.**";
public static final int port = 21;
public static final String username = "****";
public static final String password = "****";
public boolean readFtp() {
FTPClient ftp = new FTPClient();
InputStream ins = null;
try {
int reply;
ftp.connect(ip,port);
ftp.login(username,password);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return false;
}
ftp.changeWorkingDirectory("/home/fireuser/soil");//转移到FTP服务器目录
FTPFile[] fs = ftp.listFiles();
for (FTPFile ff:fs){
//从服务器读取指定的文件
ins = ftp.retrieveFileStream(ff.getName());
//根据InputStream操作文件的相关代码写在这里
//主动调用一次getreply,解决再次读取返回null的问题
ftp.getReply();
}
ftp.logout();
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if (ins != null){
ins.close();
}
if(ftp.isConnected()){
ftp.disconnect();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return true;
}
}