FTPClient文件下载
一、FTPClient下载文件所需要的jar包:
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。因此,为了保证转移文件的准确性,可以进行如下设置:
ftpClient.setBufferSize();
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", ,"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");
}
FTPClient文件下载的更多相关文章
- Java FTPClient实现文件上传下载
在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...
- 【Nginx 3】FTP远程文件下载
导读:在做项目的过程中,当用户发起申诉时,要上传一个申诉材料.然后后台运营人员在处理申诉时,可能会需要下载申诉材料,进行参考.本篇博客呢,就介绍一下文件的下载! 一.代码实现 <span sty ...
- java/struts/Servlet文件下载与ftp文件上传下载
1.前端代码 使用超链接到Struts的Action或Servlet <a target="_blank" href="ftpFileAction!download ...
- 记录 FTPClient 超时处理的相关问题
apache 有个开源库:commons-net,这个开源库中包括了各种基础的网络工具类,我使用了这个开源库中的 FTP 工具. 但碰到一些问题,并不是说是开源库的 bug,可能锅得算在产品头上吧,各 ...
- FTPClient 中 FTPClient.changeWorkingDirectory(filePath) 代码一直返回 false
FTP文件下载需要的jar包: commons-net-2.0.jar 有时可能还需要:jakarta-oro.jar 参考:FTPClient参考文档 这里记录下我碰到的问题: 刚开始我的账号和密 ...
- java实现ftp文件上传下载,解决慢,中文乱码,多个文件下载等问题
//文件上传 public static boolean uploadToFTP(String url,int port,String username,String password,String ...
- C# - VS2019WinFrm桌面应用程序FtpClient实现
前言 本篇主要记录:VS2019 WinFrm桌面应用程序实现简单的FtpClient,包含Ftp文件查看.上传和下载等功能. 准备工作 搭建WinFrm前台界面 添加必要的控件,这里主要应用到Gro ...
- 记录FTPClient超时处理的相关问题(转)
https://www.cnblogs.com/dasusu/p/10006899.html 记录 FTPClient 超时处理的相关问题 apache 有个开源库:commons-net,这个开 ...
- 解决FTP服务器上中文名文件下载后为空的问题
转: 解决FTP服务器上中文名文件下载后为空的问题 2017年07月20日 15:19:21 代码的寂寞 阅读数 2428 版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...
随机推荐
- 【转】c++重载、覆盖、隐藏——理不清的区别
原文网址:http://blog.sina.com.cn/s/blog_492d601f0100jqqm.html 再次把林锐博士的<高质量c++编程指南>翻出来看的时候,再一次的觉得这是 ...
- jmap(Memory Map For Java)
功能 jmap(Memory Map For Java)命令用于生成堆转储快照(一般称为heaphump或dump文件).如果不使用jmap命令,要想获取Java堆转储快照还有一些比较“暴力”的手 ...
- 深入学习JS: __doPostBack函数
在.NET中,所有的服务器控件提交到服务器的时候,都会调用__doPostBack这个函数,所以灵活运用这个函数对于我们的帮助还是很大的. 比如,在我们写程序的时候经常会需要动态的生成一些控件,最简单 ...
- python 正则表达式 贪婪模式的简介和匹配时的几种模式
看到一篇文章,关于python正则的,http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 贪婪模式与非贪婪模式: 正则表达式通常用于 ...
- wxWidgets一个界面与数据分离的简单例子
/*************************************************************** * Name: MyApp.h * Purpose: Defines ...
- hdoj 4738 Caocao's Bridges【双连通分量求桥】
Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- Velocity 的工作原理
原文出处:http://www.blogjava.net/jackybu/articles/8803.html 这个程序很简单,但是它能让你清楚的了解Velocity的基本工作原理.程序中其他部分基本 ...
- GestureDetector封装手势检測上下滑动
项目中须要检測ListView的上滑下滑隐藏顶部View控件,之前在网上也有非常多实现案例.在git上发现个封装非常不错的样例,记录下来. GestureDetector是一个手势检測类,内部有个Si ...
- Android开发环境搭建(图文教程)
昨天又搭建了一次Android的开发环境,尝试了好几种方式,也遇到了一些问题,在此分享一下. 注意:官网公布的最新版本号的SDK和ADT(23.0.0),对于和Eclipse集成的开发环境是有BUG存 ...
- 将动态库添加到VC程序中
应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息.Visual C++6.0在VC\bin目录下提供了一个名为Dumpbin.ex ...