java实现FTP下载,解决假死的问题

来源:互联网 发布:网络技术员求职信 编辑:程序博客网 时间:2024/06/11 16:41

前些日子一个小项目,需要使用java,通过FTP下载文件,之前没弄过,百度了一下,用高人提供的方法试了一下,果然能够顺利的连接FTP并下载,但很快,就发现了一个问题,在下载过程中,程序出现假死的现象,就是,既不报错,也不抛异常,还不终止,就是一直的跑啊跑啊的,每个头,自己研究了好长时间,也不知道怎么回事,后来上网又查了查,有人提出了一个方法,真心好用,在这里分享下:
在调用FTPClient.listFiles()或者FTPClient.retrieveFile()方法前,调用FTPClient.enterLocalPassiveMode()!
用人家的原话说,就是“这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。”说实话这是什么意思,我这个水平还不是很懂,望大家指教,现把FTP相关代码贴出来,与大家共享。

//创建FTP连接
ftpClient.setDefaultPort(//FTP端口号
);

ftpClient.connect(//FTP服务IP地址); 
ftpClient.login(//FTP用户名, //密码); 
ftpClient.setBufferSize(1024); 
//设置文件类型(二进制) 
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
//每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据
ftpClient.enterLocalPassiveMode();


//从FTP下载文件
boolean b = ftpClient.retrieveFile(//FTP文件路径及文件名, //用以保存文件的文件输出流); 

0 0
原创粉丝点击