java ftp操作

使用commons-net.jar包实现FTP操作
简单的写了个java对ftp的操作

用的是commons-net.jar包

FTPProxy.java

public class FTPProxy{
public FTPProxy()
{
super();
ftpClient = new FTPClient();
}

public FTPProxy(FTPBean entity)
{
this();
this.entity = entity;
}

private FTPBean entity;

private FTPClient ftpClient;

public void connection()
{
try
{
ftpClient.connect(entity.getServerIP());
ftpClient.login(entity.getUser(), entity.getPassword());
} catch (SocketException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
}

public void download()
{
FileOutputStream fos = null;

try
{
String remoteFile = entity.getSrcFile();
String remoteFileName = "";
if (0 == remoteFile.lastIndexOf("/"))
{
remoteFileName = remoteFile.substring(remoteFile
.lastIndexOf("/") + 1);
} else if (0 < remoteFile.lastIndexOf("/"))
{
remoteFileName = remoteFile.substring(remoteFile
.lastIndexOf("/") + 1);
String path = remoteFile.substring(0, remoteFile
.lastIndexOf("/"));
ftpClient.changeWorkingDirectory(path);
} else
{
remoteFileName = remoteFile;
}

fos = new FileOutputStream(entity.getTargetFile());

ftpClient.setBufferSize(1024 * 8);

ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.retrieveFile(remoteFileName, fos);
} catch (IOException e)
{
e.printStackTrace();
} finally
{
try
{
fos.close();
ftpClient.disconnect();
} catch (IOException e)
{
e.printStackTrace();
}
}
}

public void upload()
{
FileInputStream fis = null;

try
{
File srcFile = new File(entity.getSrcFile());
fis = new FileInputStream(srcFile);

ftpClient.setBufferSize(1024 * 8);
ftpClient.setControlEncoding("GBK");

String ftpPath = entity.getFtpPath();

if(null!=ftpPath&&!"".equals(ftpPath))
{
ftpClient.makeDirectory(ftpPath);
ftpClient.changeWorkingDirectory(ftpPath);
}

ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.storeFile(entity.getTargetFile(), fis);

} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
} finally
{
try
{
fis.close();
ftpClient.disconnect();
} catch (IOException e)
{
e.printStackTrace();
}
}
}

public void setEntity(FTPBean entity)
{
this.entity = entity;
}

public static void main(String[] args)
{
FTPBean ftpBean = new FTPBean();
ftpBean.setUser("admin");
ftpBean.setPassword("admin");
ftpBean.setServerIP("192.168.211.204");
ftpBean.setSrcFile("D:\\loadingPackageList.jsp");
ftpBean.setTargetFile("loadingPackageList.jsp");
ftpBean.setFtpPath("/admin_Test");

FTPProxy f = new FTPProxy(ftpBean);
f.connection();
f.upload();
}
}


FTPBean.java


1. public class FTPBean
2. {
3. private String serverIP;
4.
5. private String user;
6.
7. private String password;
8.
9. private String srcFile;
10.
11. private String targetFile;
12.
13. private String ftpPath;
14.
15. public String getServerIP()
16. {
17. return serverIP;
18. }
19.
20. public void setServerIP(String serverIP)
21. {
22. this.serverIP = serverIP;
23. }
24.
25. public String getUser()
26. {
27. return user;
28. }
29.
30. public void setUser(String user)
31. {
32. this.user = user;
33. }
34.
35. public String getPassword()
36. {
37. return password;
38. }
39.
40. public void setPassword(String password)
41. {
42. this.password = password;
43. }
44.
45. public String getSrcFile()
46. {
47. return srcFile;
48. }
49.
50. public void setSrcFile(String srcFile)
51. {
52. this.srcFile = srcFile;
53. }
54.
55. public String getTargetFile()
56. {
57. return targetFile;
58. }
59.
60. public void setTargetFile(String targetFile)
61. {
62. this.targetFile = targetFile;
63. }
64.
65. public String getFtpPath()
66. {
67. return ftpPath;
68. }
69.
70. public void setFtpPath(String ftpPath)
71. {
72. this.ftpPath = ftpPath;
73. }
74. }
【事件触发一致性】研究多智能体网络如何通过分布式事件驱动控制实现有限时间内的共识(Matlab代码实现)内容概要:本文围绕多智能体网络中的事件触发一致性问题,研究如何通过分布式事件驱动控制实现有限时间内的共识,并提供了相应的Matlab代码实现方案。文中探讨了事件触发机制在降低通信负担、提升系统效率方面的优势,重点分析了多智能体系统在有限时间收敛的一致性控制策略,涉及系统模型构建、触发条件设计、稳定性与收敛性分析等核心技术环节。此外,文档还展示了该技术在航空航天、电力系统、机器人协同、无人机编队等多个前沿领域的潜在应用,体现了其跨学科的研究价值和工程实用性。; 适合人群:具备一定控制理论基础和Matlab编程能力的研究生、科研人员及从事自动化、智能系统、多智能体协同控制等相关领域的工程技术人员。; 使用场景及目标:①用于理解和实现多智能体系统在有限时间内达成一致的分布式控制方法;②为事件触发控制、分布式优化、协同控制等课题提供算法设计与仿真验证的技术参考;③支撑科研项目开发、学术论文复现及工程原型系统搭建; 阅读建议:建议结合文中提供的Matlab代码进行实践操作,重点关注事件触发条件的设计逻辑与系统收敛性证明之间的关系,同时可延伸至其他应用场景进行二次开发与性能优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值