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");//轉(zhuǎn)移到FTP服務(wù)器目錄
FTPFile[] fs = ftp.listFiles();
for (FTPFile ff:fs){
//從服務(wù)器讀取指定的文件
ins = ftp.retrieveFileStream(ff.getName());
//根據(jù)InputStream操作文件的相關(guān)代碼寫在這里
//主動調(diào)用一次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;
}
}