FTP java.net.ConnectException: Connection refused: connect


 FTP    java.net.ConnectException: Connection refused: connect


排查问题如下: 一般是端口写错引起的 


(1):利用linux命令查看端口  netstat -auntp | grep 21


Last login: Fri Oct 28 12:12:24 2016 from 116.226.185.223
[root@localhost ~]# netstat -auntp | grep 21
tcp        0      0 0.0.0.0:2121                0.0.0.0:*                   LISTEN      20143/vsftpd        
tcp        0      0 :::3306                     :::*                        LISTEN      2184/mysqld         
tcp        0      0 ::ffff:127.0.0.1:3306       ::ffff:127.0.0.1:33699      ESTABLISHED 2184/mysqld         
tcp        0      0 ::ffff:127.0.0.1:3306       ::ffff:127.0.0.1:33700      ESTABLISHED 2184/mysqld         
tcp        0      0 ::ffff:127.0.0.1:3306       ::ffff:127.0.0.1:33661      ESTABLISHED 2184/mysqld         
tcp        0      0 ::ffff:127.0.0.1:3306       ::ffff:127.0.0.1:33688      ESTABLISHED 2184/mysqld         
tcp        0      0 ::ffff:127.0.0.1:3306       ::ffff:127.0.0.1:33625      ESTABLISHED 2184/mysqld         
tcp        0      0 ::ffff:127.0.0.1:3306       ::ffff:127.0.0.1:33687      ESTABLISHED 2184/mysqld         
tcp        0      0 ::ffff:127.0.0.1:3306       ::ffff:127.0.0.1:33702      ESTABLISHED 2184/mysqld         
[root@localhost ~]# 


(2): 如果连接后  读取数据为空 则  做如下修改:


ftp.enterLocalPassiveMode();//如果不加这个读取数据会为空
FTPFile[] fs = ftp.listFiles();



(3):完整代码如下:


public  void ReadFileFromSftp() {
 		
	String path="uploads//";
	String fileName="20161012buy.txt";
 		String result="";
 		FTPClient ftp = new FTPClient();
 		
 		try {
 			int reply;
 			//1.连接服务器
 			ftp.connect(server,2121);
 			//2.登录服务器 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
 			ftp.login(user, password);
 			//3.判断登陆是否成功
 			reply = ftp.getReplyCode();
 			if (!FTPReply.isPositiveCompletion(reply)) {
 				ftp.disconnect();
 			}
 			//4.指定要下载的目录
 			ftp.changeWorkingDirectory(path);// 转移到FTP服务器目录
 			//5.遍历下载的目录
 			ftp.enterLocalPassiveMode();
 			FTPFile[] fs = ftp.listFiles();
 			for (FTPFile ff : fs) {
 				//解决中文乱码问题,两次解码
 				byte[] bytes=ff.getName().getBytes("iso-8859-1");
 				String fn=new String(bytes,"utf8");
 				if (fn.equals(fileName)) {
 					InputStream  inputStream=ftp.retrieveFileStream(ff.getName());
 					result = IOUtils.toString(inputStream);
 				}
 				
 			}
 			ftp.logout();
 		} catch (IOException e) {
 			e.printStackTrace();
 		} finally {
 			if (ftp.isConnected()) {
 				try {
 					ftp.disconnect();
 				} catch (IOException ioe) {
 				}
 			}
 		}
 		
 		System.out.println("result"+result);
 		
 	}
}


  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值