一、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文件下载的更多相关文章

  1. Java FTPClient实现文件上传下载

    在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...

  2. 【Nginx 3】FTP远程文件下载

    导读:在做项目的过程中,当用户发起申诉时,要上传一个申诉材料.然后后台运营人员在处理申诉时,可能会需要下载申诉材料,进行参考.本篇博客呢,就介绍一下文件的下载! 一.代码实现 <span sty ...

  3. java/struts/Servlet文件下载与ftp文件上传下载

    1.前端代码 使用超链接到Struts的Action或Servlet <a target="_blank" href="ftpFileAction!download ...

  4. 记录 FTPClient 超时处理的相关问题

    apache 有个开源库:commons-net,这个开源库中包括了各种基础的网络工具类,我使用了这个开源库中的 FTP 工具. 但碰到一些问题,并不是说是开源库的 bug,可能锅得算在产品头上吧,各 ...

  5. FTPClient 中 FTPClient.changeWorkingDirectory(filePath) 代码一直返回 false

    FTP文件下载需要的jar包: commons-net-2.0.jar  有时可能还需要:jakarta-oro.jar 参考:FTPClient参考文档 这里记录下我碰到的问题: 刚开始我的账号和密 ...

  6. java实现ftp文件上传下载,解决慢,中文乱码,多个文件下载等问题

    //文件上传 public static boolean uploadToFTP(String url,int port,String username,String password,String ...

  7. C# - VS2019WinFrm桌面应用程序FtpClient实现

    前言 本篇主要记录:VS2019 WinFrm桌面应用程序实现简单的FtpClient,包含Ftp文件查看.上传和下载等功能. 准备工作 搭建WinFrm前台界面 添加必要的控件,这里主要应用到Gro ...

  8. 记录FTPClient超时处理的相关问题(转)

    https://www.cnblogs.com/dasusu/p/10006899.html 记录 FTPClient 超时处理的相关问题   apache 有个开源库:commons-net,这个开 ...

  9. 解决FTP服务器上中文名文件下载后为空的问题

    转: 解决FTP服务器上中文名文件下载后为空的问题 2017年07月20日 15:19:21 代码的寂寞 阅读数 2428  版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...

随机推荐

  1. win7常用键

    (1)xp和win7中都可以使用Alt+Tab中进行标签切换,win7中添加了Wins+Tab可以进行3D标签切换. (2)你知道怎样一次过调整显示器亮度.音量大小,打开无线网,还能够看到本本电池电量 ...

  2. bzoj 1876 [SDOI2009]SuperGCD(高精度+更相减损)

    1876: [SDOI2009]SuperGCD Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 2384  Solved: 806[Submit][Sta ...

  3. JavaScript高级程序设计28.pdf

    classList属性 在操作类名时需要通过className属性添加.删除和替换类名 <div class="bd user disabled">...</di ...

  4. ubuntu64bits环境下搭建Opencl的环境

    此文介绍 ubuntu 平台下配置 AMD/ATI Opencl 环境,我是ubuntu 12.04. 主要分为六个步骤: 1. Take a look at your hardware to mak ...

  5. forward和redirect 的区别

    一.使用区别 1.从地址栏显示来说 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来 ...

  6. HW4.20

    public class Solution { public static void main(String[] args) { boolean isPrime = true; int count = ...

  7. HW4.13

    public class Solution { public static void main(String[] args) { int n = 0; while(n * n * n < 120 ...

  8. tomcat6~7~8用户设置及一个独立服务器上跑多个tomcat配置JVM设置优化亲测

    tomcat6管理用户 在tomcat `安装根目录`/conf/tomcat-users.xml

  9. Jmeter聚合报告分析

    Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值 Average:平均响应时间--默认情况下是单个 Re ...

  10. Razor 语法快速参考

    Razor 语法快速参考   本文引自:http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx 语法名称 Raz ...