FTPClient文件下载
2016-03-25 16:24
429 查看
一、FTPClient下载文件所需要的jar包:
org.apache.commons.net 【commons-net-3.4.jar】
二、FTPClient的连接和关闭
关闭:
注意:在连接FTPClient的时候,一些默认的属性要进行设置。如
setBufferSize(int bufSize):设置文件转移时候的一次性读取大小;
setFileType(int fileType) :设置文件转移的时候,文件的格式。默认的是:
三、通过FTPClient下载文件
四、简单测试例子
org.apache.commons.net 【commons-net-3.4.jar】
二、FTPClient的连接和关闭
//FTPClient的连接 public FTPClient ftpConnecting(String IP, int port,String username,String pwd){ FTPClient ftpClient=new FTPClient(); try { //连接IP 如果port【端口】存在的话 ftpClient.connect(IP,port); //登录 ftpClient.login(username, pwd); //连接尝试后,应检查回复代码以验证 int reply=ftpClient.getReplyCode(); if(!FTPReply.isPositiveCompletion(reply)){ //没验证成功 //断开ftp连接 ftpClient.disconnect(); return null; } } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return ftpClient; }
关闭:
//FTPClient 的关闭 public void ftpClose(FTPClient ftpClient){ if(ftpClient.isConnected()){ try { ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } }
注意:在连接FTPClient的时候,一些默认的属性要进行设置。如
setBufferSize(int bufSize):设置文件转移时候的一次性读取大小;
setFileType(int fileType) :设置文件转移的时候,文件的格式。默认的是:
FTP.ASCII_FILE_TYPE;但是我们一般需要的格式是:FTP.BINARY_FILE_TYPE。因此,为了保证转移文件的准确性,可以进行如下设置:
[code]ftpClient.setBufferSize(1024);
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
//可以忽略换行符【\r|\n】等在不同平台之间产生的差异,保证文件大小一致。 对于打印字符【CR|LF】也可以正确的转移。
三、通过FTPClient下载文件
/** * FTPClient 下载文件 * @param remotePath : ftp上的地址: /export/home/test.txt * @param localPath:本地存放文件的地址 如:D:\EDI_TEST_FILE\00ec9bcfbcc441c699301fac111feb03\Sybase\fact\test.txt */ public void getFileByFtp(String remotePath,String localPath){ File localFile=new File(localPath); OutputStream ous=null; FTPClient client=ftpConnecting("122.22.222.111", 8080,"name","pwd"); try { ous=new FileOutputStream(localFile); client.retrieveFile(remotePath, ous); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
四、简单测试例子
public static void main(String[] args) { //保证文件名一致 FtpTest.getFileByFtp("/export/home/I_14096D46F88D617FA0B80D0B3B6D1EF5","D:/fact/I_14096D46F88D617FA0B80D0B3B6D1EF5"); }
相关文章推荐
- Laravel整合UEditor编辑器使用阿里云OSS存储(二)改造UEditor上传OSS
- FTP上传
- php实现斐波那契数列的三种方法,递归回调和迭代器和数组之间性能对比
- PHP 数组
- 经纬度讲课之ContentProvider的一些整理
- Laravel整合UEditor编辑器使用阿里云OSS存储(一)UEditor搭建和使用
- php重视问题2
- 记php和java中英文字节长度和编码关系
- PHP连接数据库(注册页面的增删改查)
- 【服务器配置】php move_uploaded_file文件移动失败
- php 环境搭建
- ThinkPHP学习(二)
- php isset 和 array_key_exists 检查数组中是否存在某值的区别
- FragmentPagerAdapter刷新fragment
- PHP编码规范
- thinkphp M 和模板用法
- yii 标签用法(模板)
- php手册学习(2)
- ThinkPHP学习(一)
- PHP实现发送邮件的方法(基于简单邮件发送类)