`

apache提供的FTP功能

阅读更多

apache提供的FTP功能还算强大,最近研究了一下它的断点续传功能,写下我的收获,以供大家参考。

  首先需要引入commons-net-1.4.1.jar包,该包可在http://commons.apache.org/downloads/download_net.cgi下载。

  断点续传的类ContinueFTP如下:

import java.io.*;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
public class ContinueFTP {
  private FTPClient ftpClient = new FTPClient();
  public ContinueFTP() {
    ftpClient.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
  }
  public boolean connect(String hostname, int port, String username, String password) throws IOException {
    ftpClient.connect(hostname, port);
    if (FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
      if (ftpClient.login(username, password)) {
        return true;
      }
    }
    disconnect();
    return false;
  }
  public boolean download(String remote, String local) throws IOException {
    ftpClient.enterLocalPassiveMode();
    boolean result;
    File f = new File(local);
    if (f.exists()) {
      OutputStream out = new FileOutputStream(f, true);
      ftpClient.setRestartOffset(f.length());
      result = ftpClient.retrieveFile(remote, out);
      out.close();
    } else {
      OutputStream out = new FileOutputStream(f);
      result = ftpClient.retrieveFile(remote, out);
      out.close();
    }
    return result;
  }
 
  public void disconnect() throws IOException {
    if (ftpClient.isConnected()) {
     ftpClient.disconnect();
    }
  }
 
  public static void main(String[] args){
    ContinueFTP myFtp = new ContinueFTP();
    try {
      myFtp.connect("192.168.0.100", 21, "123", "123");
      myFtp.download("t.txt","G:/test.txt");
      myFtp.disconnect();
    } catch (IOException e) {
      System.out.println("连接FTP出错:"+e.getMessage());
    }
  }
}
 

  上面的main函数是个例子,很容易看明白:
  connect(String hostname, int port, String username, String password)中,各参数依次是主机名或IP,端口号,用户名和密码。
  download(String remote, String local)中,参数分别是远程FTP中的文件名和下载到本地中的文件全路径。

  注意上面的类中用到了PrintCommandListener.java,它是放在commons-net-1.4.1.jar源码的example下的,在commons-net-1.4.1.jar中并没有打进来,这里贴出这个类,如果需要的话和ContinueFTP.java放在一起就行了

分享到:
评论

相关推荐

    apache FTPserver 安装包

    Apache FTPServer是一款开源的FTP服务器软件,它是Apache软件基金会的一部分,设计用于提供可靠且高效的文件传输服务。在本文中,我们将深入探讨如何安装和配置Apache FTPServer,以及它的一些核心特性。 首先,让...

    apache-ftpserver-1.1.1.zip

    总之,Apache FTPServer是一个强大且灵活的FTP服务器解决方案,无论是在个人项目还是企业环境中,都能提供可靠的服务。了解并熟练掌握其安装、配置和管理方法,对于提升网络文件传输的安全性和效率至关重要。

    ApacheCamel-FTP

    Apache Camel 提供了 FTP 组件,使得在 Camel 路由中集成 FTP 功能变得简单高效。 在 Apache Camel 的 FTP 组件中,你可以实现以下功能: 1. **连接到 FTP 服务器**:通过配置 FTP 客户端参数,如主机名、端口、...

    apache_ftp 开发包

    这个开发包包含了多个相关的组件和库,为开发者提供了在Java环境中实现FTP功能的强大支持。 Apache Commons Net是Apache软件基金会的一个项目,提供了一系列与网络通信相关的实用工具和类库,包括FTP、Telnet、SMTP...

    apache ftpserver笔记

    Apache FTPServer还支持通过插件机制扩展功能,例如,可以通过`UserManager`插件来管理用户账户,通过`CommandHandler`插件来添加自定义的FTP命令。这对于开发企业级的FTP服务尤其有用,可以满足特定的业务需求。 ...

    apache-ftpserver-1.0.6

    Apache FTPServer提供了许多高级功能,包括用户认证、虚拟主机、文件权限管理、SSL/TLS加密以及基于角色的访问控制等。这些特性使其成为企业级FTP部署的理想选择。 在"apache-ftpserver-1.0.6"压缩包中,我们可以...

    apache-ftpserver-1.1.1.tar.gz

    总的来说,Apache FTPServer是Linux环境中一个强大且可定制的FTP解决方案,它提供了丰富的功能和良好的社区支持,可以帮助管理员搭建高效、安全的文件传输服务。通过深入理解和配置,我们可以实现符合业务需求的FTP...

    apache实现ftp上传

    Apache commons-net 库提供了一个功能强大且灵活的 FTP 客户端工具,能够满足各种 FTP 操作需求。在本文中,我们将探索如何使用 Apache commons-net 库实现 FTP 上传功能。 FTP 客户端工具 Apache commons-net 库...

    Apache Ftpserver 全套

    1. **模块化设计**:Apache Ftpserver的模块化结构允许你根据需要添加或移除功能。例如,可以使用不同的用户认证模块(如基于文件的用户数据库,或与LDAP、Active Directory集成)。 2. **VFS(Virtual File System...

    apache-ftpserver-1.1.0.tar.gz

    Apache FTPServer是一款开源的FTP服务器软件,源自Jakarta MINA项目,现在是Apache软件基金会的一部分。这个名为"apache-ftpserver-1.1.0.tar.gz"的压缩包包含了Apache FTPServer的1.1.0版本,适用于那些希望在自己...

    Java 嵌入apache.ftpserver.FtpServer 实现FTP服务

    通过理解和利用Apache FtpServer提供的API,我们可以创建一个功能齐全、安全可靠的FTP服务器,满足各种业务需求。在开发过程中,应充分考虑服务器的安全性、稳定性和可扩展性,确保FTP服务的高效运行。

    基于Apache FtpServer 的Ftp服务器实现

    在本场景中,我们重点讨论如何利用Apache FtpServer与Spring框架集成来搭建一个功能强大的FTP服务器。 首先,Apache FtpServer的核心组件包括FtpServerFactory和FtpServer,它们分别用于创建FTP服务器实例和启动...

    apache ftp server

    总之,Apache FTP Server是一个强大且灵活的开源FTP解决方案,适合那些需要自定义和扩展功能的企业级文件传输环境。它的源码可读性强,便于开发者根据需求进行定制,而丰富的工具集则简化了管理和维护的工作。

    Apache FtpServer详细配置.zip

    Apache FtpServer是一款开源的FTP服务器,它基于Java平台,为用户提供了一种灵活且可扩展的方式来搭建和管理FTP服务。Apache FtpServer以其强大的功能、良好的稳定性和丰富的配置选项深受IT专业人士的喜爱。以下是对...

    apache ftpserver讲解

    Apache FTP Server 是一个基于 Java 的开源 FTP 服务器,它提供了丰富的功能和灵活性,能够满足各种文件传输需求。在 CMMB 中广传媒项目中,为了实现更为安全和灵活的文件传输,采用了 Apache FTP Server,并将其与...

    java_apache_ftp断点续传(资料及实例)

    Apache Commons Net库提供了FTPClient类,它是Java实现FTP功能的核心。FTPClient类支持多种FTP命令,包括用于断点续传的REST(Restart)命令。断点续传允许在传输过程中暂停,然后在稍后的时间点继续从上次中断的...

    apache ftp工具所需jar

    Apache FTP工具所需JAR文件是Java开发中用于与FTP服务器交互的重要组件,这些JAR库提供了方便的API,使得开发者可以轻松地实现FTP文件传输功能。以下是对这些JAR文件的详细说明: 1. `ant-jakarta-oro-1.6.1.jar`: ...

    apache FTP 工具类

    Apache Commons Net提供了多种FTP相关的工具类,使得在Java环境中进行FTP交互变得更加简单和高效。接下来,我们将深入探讨FTP工具类的主要功能、使用方法以及源码分析。 **1. FTPClient类** FTPClient是Apache ...

Global site tag (gtag.js) - Google Analytics