java实现FTP和 SFTP连接远程服务器下载文件

本文详细介绍了如何使用Java实现FTP和SFTP连接远程服务器下载文件。FTP是基于TCP的应用层协议,用于可靠的文件传输。SFTP是SSH的一部分,提供安全的文件传输。文章提供了代码示例,强调SFTP在安全性上的优势,但因其加密传输导致效率低于FTP。
摘要由CSDN通过智能技术生成

java实现FTP和 SFTP连接远程服务器下载文件


前言

为什魔写这片文章呢,因为关于ftp和sftp的文章介绍的太少啦 。


提示:以下是本篇文章正文内容,下面案例可供参考

一、FTP是什么?如何实现。

来自百度百科 :文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。
FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。

1.实现代码


public class FtpTools {
   
	public static Logger logger = SnowLog.getLogger(FtpTools.class);
	private static String ftpHost; 										// IP
	private static int ftpPort; 										// port
	private static String ftpUserName; 									// 用户
	private static String ftpPassword; 									// 密码
	private static FTPClient ftpClient; 								// IP
	/**
	 * 初始化ftp信息
	 * @param type
	 * @throws Exception
	 */
	public void init(String type) throws Exception {
   
		logger.info("***********************初始化FTP信息***********************");
		String hostMagicId = null;
		String userNameMagicId = null;
		String passWordMagicId = null;
		String cbsPortMagicId=null;
		if(InterConstants.FTP_CBS_01.equals(type)){
   
			hostMagicId = "CBS_HOST";
			userNameMagicId = "CBS_USERNAME";
			passWordMagicId = "CBS_PASSWORD";
			cbsPortMagicId="CBS_PORT";
		}else{
   
			SnowExceptionUtil.throwErrorException("ftp类型非法,初始化ftp信息失败");
		}
		TblSysParam selectHost = DBDaos.newInstance().select(TblSysParam.class, "FTP", hostMagicId);
		if (selectHost == null) {
   
			SnowExceptionUtil.throwErrorException("请配置FTP地址!");
		}
		ftpHost = selectHost.getParamValueTx();
		TblSysParam selectPort = DBDaos.newInstance().select(TblSysParam.class, "FTP", cbsPortMagicId);
		if (selectPort == null) {
   
			SnowExceptionUtil.throwErrorException("请配置FTP端口!");
		}
		ftpPort = Integer.parseInt(selectPort.getParamValueTx());
		TblSysParam selectUsername = DBDaos.newInstance().select(TblSysParam.class, "FTP", userNameMagicId);
		if (selectUsername == null) {
   
			SnowExceptionUtil.throwErrorException("请配置FTP用户名!");
		}
		ftpUserName = selectUsername.getParamValueTx();
		TblSysParam selectPassword = DBDaos.newInstance().select(TblSysParam.class, "FTP", passWordMagicId);
		if (selectPassword == null) {
   
			SnowExceptionUtil.throwErrorException("请配置FTP密码!");
		}
		ftpPassword = selectPassword.getParamValueTx();

	}

	/**
	 * 连接ftp服务
	 * @throws Exception
	 */
	public  void connectClient() throws Exception {
   
		logger.info("***********************登录FTP***********************");
		ftpClient = new FTPClient();
		try {
   
			ftpClient = new FTPClient();
			ftpClient.connect(ftpHost, ftpPort);// 连接FTP服务器
			ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器
			//设置编码
			ftpClient.setControlEncoding("GBK");
			ftpClient.setBufferSize(8096);
			if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
   
				logger.info("未连接到FTP,用户名或密码错误。");
				ftpClient.disconne
  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灰太狼RD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值