import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.SocketException;
import java.text.SimpleDateFormat;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
public class Test {
public static void main(String[] args) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
FTPClient ftpClient = FtpUtil.connectFTP("127.0.0.1", 21, "123456", "123456");
FTPFile[] ftpFiles = ftpClient.listFiles();
for (FTPFile ftpFile : ftpFiles) {
String fileName = ftpFile.getName();//获取文件名
String suffix = fileName.substring(fileName.lastIndexOf(".")).toLowerCase();//后缀名
//ftp设置的是utc时间,和系统时间有8小时时差,所以需要加上时差
Long lastModifiedTime = ftpFile.getTimestamp().getTimeInMillis() + ftpFile.getTimestamp().getTimeZone().getOffset(0);
System.out.println("读取到文件:"+fileName+" 文件最后修改时间:"+sdf.format(lastModifiedTime));
if(suffix.equals(".txt")){
InputStream is = ftpClient.retrieveFileStream(ftpFile.getName());
BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
String content = "";
while ((content = br.readLine()) != null){ //一次读入一行数据
System.out.println(content);
br.close();
is.close();
//结束事务(有流返回时需手动调用,否则会报输入流为空)
ftpClient.completePendingCommand();
* 连接FTP
* @param hostname 服务器地址
* @param port 端口号(默认为21)
* @param username 帐号
* @param password 密码
public static FTPClient connectFTP(String hostname, int port, String username, String password){
FTPClient ftp = new FTPClient();
try {
//连接FTP服务器
ftp.connect(hostname, port);
boolean login = ftp.login(username, password);
if (login) {
System.out.println(">>>>>>>>FTP-->登录成功>>>>>>>>>>>>>");
}else {
System.out.println(">>>>>>>>FTP-->登录失败>>>>>>>>>>>>>");
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
return ftp;
1.pom.xml添加连接FTP依赖包<dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.1</version></dependency>2....
package com.farm.home.service.serviceImpl;
import org.apache.commons.net.
ftp
.
FTP
Client;
import org.apache.commons.net.
ftp
.
FTP
File;
import
java
.io.BufferedReader;
import
java
.io.InputSt
文章目录1. 阿里云搭建
ftp
服务器1.1 安装
ftp
服务器1.2 设置阿里云ECS的安全组2. FileZilla客户端查看
文件
1. 阿里云搭建
ftp
服务器
1.1 安装
ftp
服务器
1、安装vs
ftp
,sudo apt-get install vs
ftp
d
2、修改配置sudo vi /etc/vs
ftp
d/vs
ftp
d.conf
3、设置
ftp
服务开机自动启动,systemctl enable vs
ftp
d.service
4、启动
ftp
服务器,systemctl start vs
ftp
d.ser
<!-- https://mvnrepository.com/artifact/commons-net/commons-net -->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>
@ConfigurationProperties(prefix = "
ftp
.server")
@Data
public class
Ftp
PropertiesConfig {
* IP地址
private String host;
可以使用
Java
的网络编程功能,实现
FTP
协议的
文件
上传。具体步骤如下:
1. 建立与
FTP
服务器的连接:使用
Java
的Socket类进行连接,并使用该类的方法登录到
FTP
服务器。
2. 设置上传模式:使用
FTP
协议的特定命令设置上传模式为二进制模式。
3. 构造
文件
:使用
Java
的FileInputStream类
读取
待上传的
文件
,并将其写入到
FTP
服务器。
4. 确认
文件
上传:使用
FTP
协议的特定命令确认
文件
已经成功上传。
5. 断开连接:使用
Java
的Socket类断开与
FTP
服务器的连接。
可以使用现成的开源
FTP
客户端库,如Apache Commons Net,简化开发难度。