package org.ilp.utils;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPListParseEngine;
import org.apache.commons.net.ftp.FTPReply;
import org.ilp.utils.ftp.filter.FTPFileFilterImpl;
public class FtpTest {
public static void main(String[] args) {
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect("192.168.0.190", 21);
ftp.login("ftpuser", "123456x");
ftp.enterLocalPassiveMode();
ftp.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);
ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.setRemoteVerificationEnabled(false);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
System.err.println("FTP服务器拒绝连接!");
System.exit(1);
} else {
// 跳转到指定目录下
boolean flag = ftp.changeWorkingDirectory("/TEST/IN/");
if (!flag) {
ftp.makeDirectory("/TEST/IN/");
}
// 默认获取当前目录
FTPListParseEngine engine = ftp.initiateListParsing();
// 分页获取文件
// FTPFile[] files = engine.getNext(10);
// 自定义过滤器
FTPFileFilterImpl filter = new FTPFileFilterImpl();
// 按文件名称过滤
filter.setFileName("DEBMAS");
FTPFile[] files = engine.getFiles(filter);
for (FTPFile ftpFile : files) {
if (ftpFile.isFile()) {
InputStream retrieveFileStream = ftp.retrieveFileStream(ftpFile.getName());
BufferedReader reader = new BufferedReader(new InputStreamReader(retrieveFileStream, "UTF-8"));
String line;
StringBuilder builder = new StringBuilder();
while ((line = reader.readLine()) != null) {
builder.append(line);
}
reader.close();
if (retrieveFileStream != null) {
retrieveFileStream.close();
}
ftp.completePendingCommand();
String xml = builder.toString();
System.out
apache FTP 文件过滤
最新推荐文章于 2023-07-17 18:01:47 发布