热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java连接ftp下载

有的时候需要用到java连接ftp服务器下载,上传一些操作,下面写了一个小例子。**ftp服务器地址*privateStringftpHost;*

有的时候需要用到java连接ftp服务器下载,上传一些操作,下面写了一个小例子。

/** ftp服务器地址 */
private String ftpHost;
/** ftp服务器用户名 */
private String ftpName;
/** ftp服务器密码 */
private String ftpPass;
/** ftp根目录 */
private String ftpDir;
/** 本地目录 */
private String localPath;
public boolean downloadFile(String path, String fileName) {// 全部路径String fullPath = path + fileName;FTPClient client = new FTPClient();// 超时client.setConnectTimeout(30000);File dir = new File(localPath + path);// 判断此文件夹是否存在if (!dir.exists())dir.mkdirs();try {// 连接ftpclient.connect(ftpHost);int replyCode = client.getReplyCode();if (!FTPReply.isPositiveCompletion(replyCode)) {client.disconnect();return false;}replyCode = client.getReplyCode();if (!FTPReply.isPositiveCompletion(replyCode)) {client.quit();return false;}// 登录if (client.login(ftpName, ftpPass)) {// 以2开头的返回值就会为真if (!FTPReply.isPositiveCompletion(client.getReplyCode())) {client.disconnect();logger.error("连接ftp失败");}/** ftp server system type */FTPClientConfig config = new FTPClientConfig(FTPClientConfig.SYST_UNIX);/** server language */config.setServerLanguageCode("zh");/** server time zone */config.setServerTimeZoneId("Asia/Shanghai");/** ftp transfer mode in binary */client.setFileTransferMode(FTP.BINARY_FILE_TYPE);/** receive buffer size */client.setReceiveBufferSize(524288);client.configure(config);client.setFileTransferMode(FTP.BINARY_FILE_TYPE);client.setFileType(FTP.BINARY_FILE_TYPE);client.changeWorkingDirectory(ftpDir);// 转移到FTP服务器目录// 下载到本地return client.retrieveFile(ftpDir + fullPath, new FileOutputStream(localPath + fullPath));}} catch (Exception e) {e.printStackTrace();return false;} finally {if (client.isConnected()) {try {client.logout();} catch (IOException e) {e.printStackTrace();}}}return false;}

 

里面的具体参数可以根据情况来设置,是用的apache的开源项目。



推荐阅读
  • Hadoop 源码学习笔记(4)Hdfs 数据读写流程分析
    Hdfs的数据模型在对读写流程进行分析之前,我们需要先对Hdfs的数据模型有一个简单的认知。数据模型如上图所示,在NameNode中有一个唯一的FSDirectory类负责维护文件 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • Ansibleplaybook roles安装redis实例(学习笔记二十九)
    1、相关redis参数:2、templatesredis.conf配置相关参数:daemonizeyespidfilevarrunredis_{{red ... [详细]
  • 本文主要介绍关于linux文件描述符设置,centos7设置文件句柄数,centos7查看进程数的知识点,对【Linux之进程数和句柄数】和【linux句柄数含义】有兴趣的朋友可以看下由【东城绝神】投 ... [详细]
  • Answer:Theterm“backslash”isonofthemostincorrectlyusedtermsincomputing.People ... [详细]
  • 201720181 20155339 《信息安全系统设计基础》第六周学习总结
    2017-2018-120155339《信息安全系统设计基础》第六周学习总结教材学习内容总结控制转移:从ak指令到a(k1)指令的过渡。控制转移序列称为处理器的控制流 ... [详细]
  • 注:根据Qt小神童的视频教程改编概论:利用最新的Qt5.1.1在windows下开发的一个小的时钟程序,有指针与表盘。1.Qtforwindows开发环境最新的Qt已经集 ... [详细]
author-avatar
Larry_He
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有