package com.example.tl.util; import org.apache.commons.lang3.StringUtils; 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.FTPReply; import java.io.*; import java.net.UnknownHostException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; /** * FTP工具类 * * @author: simon * @date: 2019/7/3 14:37 */ public class FTPUtil { /** * 字符集 */ private static final String DEFAULT_CHARSET = "UTF-8"; /** * 超时时间 */ private static final int DEFAULT_TIMEOUT = 60 * 1000; /** * 主机名或者ip地址 */ private final String host; /** * ftp服务器端口 */ private final int port; /** * ftp用户名 */ private final String username; /** * ftp密码 */ private final String password; /** * ftpClient对象 */ public FTPClient ftpClient; /** * 初始化时ftp服务器路径 */ private volatile String ftpBasePath = ""; /** * 构造函数 * * @param host 主机名或者ip地址 * @param username ftp 用户名 * @param password ftp 密码 * @param ftpBasePath 初始化时ftp服务器路径 */ public FTPUtil(String host, String username, String password, String ftpBasePath) { this(host, 21, username, password, DEFAULT_CHARSET, ftpBasePath); setTimeout(DEFAULT_TIMEOUT, DEFAULT_TIMEOUT, DEFAULT_TIMEOUT); } /** * 构造函数 * * @param host 主机名或者ip地址 * @param port ftp 端口 * @param username 用户名 * @param password 密码 * @param ftpBasePath 初始化时ftp服务器路径 */ public FTPUtil(String host, int port, String username, String password, String charset, String ftpBasePath) { ftpClient = new FTPClient(); ftpClient.setControlEncoding(charset); this.host = StringUtils.isEmpty(host) ? "localhost" : host; this.port = (port <= 0) ? 21 : port; this.username = StringUtils.isEmpty(username) ? "anonymous" : username; this.password = password; this.ftpBasePath = ftpBasePath; } /** * 创建默认的ftp客户端 * * @param host 主机名或者ip地址 * @param username ftp用户名 * @param password ftp密码 * @param ftpBasePath 初始化时ftp服务器路径 * @return com.siniswift.efb.acars.utils.FTPUtil */ public static FTPUtil createFtpCli(String host, String username, String password, String ftpBasePath) { return new FTPUtil(host, username, password, ftpBasePath); } /** * 创建自定义属性的ftp客户端 * * @param host 主机名或者ip地址 * @param port ftp端口 * @param username ftp用户名 * @param password ftp密码 * @param charset 字符集 * @param ftpBasePath 初始化时ftp服务器路径 * @return com.siniswift.efb.acars.utils.FTPUtil */ public static FTPUtil createFtpCli(String host, int port, String username, String password, String charset, String ftpBasePath) { return new FTPUtil(host, port, username, password, charset, ftpBasePath); } /** * 设置超时时间 * * @param defaultTimeout 超时时间 * @param connectTimeout 超时时间 * @param dataTimeout 超时时间 */ private void setTimeout(int defaultTimeout, int connectTimeout, int dataTimeout) { ftpClient.setDefaultTimeout(defaultTimeout); ftpClient.setConnectTimeout(connectTimeout); ftpClient.setDataTimeout(dataTimeout); } /** * 连接到ftp */ public void connect() throws IOException { try { ftpClient.connect(host, port); } catch (UnknownHostException e) { throw new IOException("Can't f
Java FTP文件的静态连接以及FTP文件的增删改查
最新推荐文章于 2023-12-07 11:43:39 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)