pom:
<dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.0.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency>
FtpConManager:
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; /** *FTP 管理 *<br>使用简单工厂方法 * */ public class FtpConManager { private FtpConManager(){} private static FtpConManager instance; private FTPClient ftpClient =null; /** * 获取实例 * get FtpConManager * @return FtpConManager */ public synchronized static FtpConManager getInstance(){ if( instance == null ){ instance = new FtpConManager(); } return instance; } /** * <p>ftp登录</p> * @param s_url ftp IP地址 * @param uname 用户名 * @param pass 密码 */ public void login(String hostIP,String username,String password){ ftpClient = new FTPClient(); try{ //连接 ftpClient.connect(hostIP); ftpClient.login(username,password); //检测连接是否成功 int reply = ftpClient.getReplyCode(); if(!FTPReply.isPositiveCompletion(reply)) { this.closeCon(); System.out.println("FTP 连接失败!"); System.exit(1); }else{ System.out.println("FTP 连接成功!"); } }catch(Exception ex){ ex.printStackTrace(); //关闭 this.closeCon(); } } /** * 上传文件 * @param localFilePath 本地路径及名字 * @param newFileName FTP上的路径及名字 * @return */ public boolean uploadFile(String localPathAndName,String fptPathAndName){ boolean flag = false ; if( ftpClient!=null ){ BufferedInputStream buffIn=null; try{ buffIn=new BufferedInputStream(new FileInputStream(localPathAndName)); flag = ftpClient.storeFile(fptPathAndName, buffIn); }catch(Exception e){ e.printStackTrace(); }finally{ try{ if(buffIn!=null) buffIn.close(); }catch(Exception e){ e.printStackTrace(); } } } return flag ; } /** * 下载文件 * @param remoteFileName FTP上的路径及名字 * @param localFileName 本地路径及名字 */ public boolean downloadFile(String remotePathAndName,String localPathAndName){ boolean flag = false ; if( ftpClient!=null ){ BufferedOutputStream buffOut=null; try{ buffOut=new BufferedOutputStream(new FileOutputStream(localPathAndName)); flag = ftpClient.retrieveFile(remotePathAndName, buffOut); }catch(Exception e){ e.printStackTrace(); }finally{ try{ if(buffOut!=null) buffOut.close(); }catch(Exception e){ e.printStackTrace(); } } } return flag ; } /** * * <p>删除ftp上的文件</p> * @param srcFname * @return true || false */ public boolean removeFile(String srcFname){ boolean flag = false; if( ftpClient!=null ){ try { flag = ftpClient.deleteFile(srcFname); } catch (IOException e) { e.printStackTrace(); this.closeCon(); } } return flag; } /** *<p>销毁ftp连接</p> */ public void closeCon(){ if(ftpClient !=null){ if(ftpClient.isConnected()){ try { ftpClient.logout(); ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } } }
FtpNetTest:
public class FtpNetTest { /** * @param args */ public static void main(String[] args) { FtpConManager.getInstance().login("xxx.xxx.xxx.xxx", "xxx", "xxx"); // boolean flag = FtpConManager.getInstance().uploadFile("i:/4/dog.txt", "dog.txt"); boolean flag =FtpConManager.getInstance().uploadFile("i:/4/dog.txt", "xx/dog.txt"); // boolean flag =FtpConManager.getInstance().loadFile("20150626/dog.txt", "i:/4/dog2.txt") ; // boolean flag = FtpConManager.getInstance().removeFile("aa/a.txt"); System.out.println("操作结果:"+flag); FtpConManager.getInstance().closeCon(); } }
注:如果发现上传时创建文件夹而无法写入的情况,请不要慌,关闭防火墙就可以了。
相关推荐
4. **多平台支持**:Apache FTPServer可以在多种操作系统上运行,包括Windows、Linux、Unix等。 5. **强大的配置能力**:通过XML配置文件,管理员可以精细地控制FTP服务器的行为,例如设置用户权限、限制速度、配置...
Apache FTPServer:Apache 软件基金会开发的一款 FTP 服务器,支持多种操作系统,功能强大、灵活。 FileZilla Server:一个免费的 FTP 服务器,支持多种操作系统,易于使用。 VSFTP:一个安全、稳定的 FTP 服务器...
这个库提供了丰富的API,支持基本的FTP操作,如连接、登录、上传、下载、删除文件,以及断点续传和处理中文文件名的功能。断点续传在大文件传输中尤为重要,它可以避免因网络问题中断传输后从头开始。实现断点续传的...
你可以查看并学习如何实现FTP协议,如何处理用户认证,以及如何处理文件上传和下载等操作。 在深入研究Apache Ftpserver时,你还需要了解以下关键概念: 1. **模块化设计**:Apache Ftpserver的模块化结构允许你...
使用这些JAR文件,开发者可以构建一个功能齐全的FTP客户端,能够方便地执行各种FTP操作。例如,通过`commons-net-1.4.1.jar`中的`FTPClient`对象,可以建立与FTP服务器的连接,然后使用`login()`方法登录,`change...
例如,对于 Apache FTP Server 1.0.5 版本,可以根据不同的操作系统选择对应的安装包。 2. **安装** - **Linux/Unix系统**:使用命令 `tar -xzvf ftpserver-1.0.5.tar.gz` 进行解压安装。 - **Windows系统**:...
Apache Ftp Server是一款开源的FTP服务器软件,基于Java平台,由Apache软件基金会开发。它提供了高度可配置性和灵活性,使得用户可以根据自身需求定制FTP服务。本文将深入探讨Apache Ftp Server的使用方法,包括安装...
这个库提供了FTP客户端功能,允许Java程序连接到FTP服务器,执行上传、下载、列表文件等操作。它的使用方式与Apache FtpServer类似,需要添加依赖并调用相应的API方法。 总结起来,Apache FtpServer是Java开发人员...
启动Apache FTP Server的方法因操作系统而异: - **Linux**: ```bash cd %FTP_HOME% bin/ftpd.sh res/conf/ftpd-full.xml ``` - **Windows**: ```bash cd %FTP_HOME% bin/ftpd.bat res/conf/ftpd-full.xml ...
Apache FTP Server是一个开源的FTP服务器,它允许用户通过FTP协议上传、下载文件。这个服务器是用Java语言编写的,因此可以在任何支持Java的平台上运行,包括Windows、Linux、Unix等操作系统。Apache FTP Server的...
这个特定的压缩包“apache-ftpserver-1.1.1.zip”包含了该服务器软件的v1.1.1版本,适用于Linux和Windows操作系统。FTP服务器的主要作用是为用户提供一个安全、可靠的文件上传和下载服务。 Apache FTPServer的特性...
Apache FTPServer是一个开源的FTP服务器项目,它提供了一个强大、灵活且可扩展的平台来管理文件传输服务。这个服务器是基于Java实现的,因此具备跨平台性,可以在多种操作系统上运行,包括Windows、Linux和Mac OS等...
然后,可以通过Apache Commons Net提供的`FTPClient`和`FTPSClient`类来创建FTP客户端,实现文件上传、下载、删除等操作。对于服务器端,可以利用FTPServer API来配置和启动FTP服务,设置用户权限,以及处理客户端...
Java中的Apache FtpServer库为开发人员提供了一个强大的框架,用于在Java应用程序中轻松地创建和管理FTP服务器。Apache FtpServer提供了丰富的API,可以定制服务器的行为,满足各种需求。本篇文章将深入探讨如何利用...
Apache FTP工具库提供了丰富的API,支持基本的FTP操作,如连接、断开、登录、列出目录内容、上传文件、下载文件、创建删除目录等。此外,它还支持更高级的功能,如被动模式、主动模式、二进制或文本模式的文件传输,...
Apache FTPServer是一个开源的FTP服务器项目,源自Apache MINA项目,提供了一种高效且可扩展的方式来实现FTP(文件传输协议)服务。这个"apache-ftpserver-1.0.6"版本是该软件的一个特定发布版,包含了在该版本中所...
Apache FTPClient操作FTP工具类
总结,Apache Commons Net的FTP工具类为Java开发者提供了便利的FTP操作接口,可以轻松地进行文件传输和目录管理。通过阅读`FtpUtil.java`和`FtpConfig.java`源码,我们可以了解如何在实际项目中利用这些功能来实现...
Apache Camel 提供了 FTP 组件,使得在 Camel 路由中集成 FTP 功能变得简单高效。 在 Apache Camel 的 FTP 组件中,你可以实现以下功能: 1. **连接到 FTP 服务器**:通过配置 FTP 客户端参数,如主机名、端口、...