`
Shuhui
  • 浏览: 5589 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

利用commons-net-3.3,实现ftp的文件下载功能

阅读更多
近期公司需求,需要从现场下载文件进行解析.关键是这个文件如何获取!
当然是通过FTP文件传输的方式获取最为简单方便.于是有了下面的代码.

package com.net.test;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.junit.Test;
public class FTPTest {
@Test
public void testftpmain() {
String hostname = "127.0.0.1";//
int port = 21;
String username = "eFlow";//
String password = "eFlow";//eFlow
String pathname = "/上传";///上传
String filename = "ASSETPHOTO_ATTACHMENT.sql";
String originfilename = "C:/Users/Administrator/Desktop/测试FTP下载";

boolean downloadFile = downloadFile(hostname, port, username, password, pathname, filename, originfilename);
//System.out.print(System.currentTimeMillis());

}

/**
* 下载文件
*
* @param hostname
*            FTP服务器地址
* @param port
*            FTP服务器端口号
* @param username
*            FTP登录帐号
* @param password
*            FTP登录密码
* @param pathname
*            FTP服务器文件目录
* @param filename
*            文件名称
* @param localpath
*            下载后的文件路径
* @return
*/
public boolean downloadFile(String hostname, int port,
String username, String password, String pathname, String filename,
String localpath) {
boolean flag = false;
FTPClient ftpClient = new FTPClient();

ftpClient.setControlEncoding("utf-8");//避免中文文件乱码问题

FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
conf.setServerLanguageCode("zh");

try {
// 连接FTP服务器
ftpClient.connect(hostname, port);
// 登录FTP服务器
boolean login = ftpClient.login(username, password);
// 验证FTP服务器是否登录成功
int replyCode = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(replyCode)) {
return flag;
}
// 切换FTP目录
ftpClient.changeWorkingDirectory(pathname);
FTPFile[] ftpFiles = ftpClient.listFiles();
for (FTPFile file : ftpFiles) {
System.out.println(file.getName());
if (filename.equalsIgnoreCase(file.getName())) {

File localFile = new File(localpath + "/" + file.getName());
OutputStream os = new FileOutputStream(localFile);

ftpClient.retrieveFile(file.getName(), os);
os.close();
}
}
ftpClient.logout();
flag = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ftpClient.isConnected()) {
try {
ftpClient.logout();
} catch (IOException e) {

}
}
}
return flag;
}
}


下面附有:commons-net-3.3.jar
分享到:
评论

相关推荐

    Android 利用commons-net-3.3实现ftp上传下载Demo

    本教程将深入讲解如何利用Apache Commons Net库的3.3版本在Android应用中实现FTP功能。 首先,Apache Commons Net是一个Java库,提供了一系列用于网络通信的类和实用工具,包括FTP客户端组件。在Android项目中,...

    commons-net-3.3

    在3.3版本中,这个库提供了丰富的功能,使得开发者可以方便地在Java应用程序中实现文件和文件夹的上传、下载以及日志输出。对于Android开发者来说,这是一个非常有用的工具,因为它兼容Android平台,能够帮助我们在...

    commons-net-3.3源码包

    在这个"commons-net-3.3源码包"中,我们可以深入理解其实现细节,对其进行定制和扩展,这对于开发人员来说非常有用。下面我们将详细探讨此源码包中的关键知识点。 1. **FTP协议实现**: Commons Net库的核心功能之...

    commons-net-3.3.zip

    它提供了一个全面的FTP客户端实现,包括连接管理、上传下载文件、创建和删除目录、设置权限等功能。开发者可以利用这些API来构建复杂的FTP应用,无需深入了解底层的网络通信细节。 2. TELNET模块:这个库也提供了对...

    java commons-net 类库

    10. **API文档**:`commons-net-3.3-api.chm`文件包含了完整的API文档,开发者可以通过查阅此文档了解每个类和方法的用法和功能。 在实际开发中,使用Apache Commons-Net可以极大地提高开发效率,减少代码量,并且...

    commons-net-3.3.jar、jakarta-oro-2.0.8.jar、javacsv.jar

    在FTP连接方面,"commons-net-3.3.jar"提供了全面的FTP客户端功能,支持FTP命令的执行、文件上传下载、被动模式、主动模式、SSL/TLS安全连接等多种操作。它的API设计简洁,易于理解和使用,是Java开发中进行FTP交互...

    Android FTP服务器上传文件攻略(代码详解)

    commons-net-3.3.jar 然后利用api进行相关操作,具体功能如下: Ftp相关代码 import android.util.Log; import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache....

    apache commons 下 所有 jar 大全

    1. **commons-net-3.3-bin.zip**:这是Apache Commons Net库,提供了一系列与网络相关的实用工具和协议实现,如FTP、SMTP、NNTP等。版本3.3包含了对TCP/IP协议栈的各种操作的支持,如DNS查询、telnet、HTTP和FTP...

    apache_ftp 开发包

    然后,可以通过Apache Commons Net提供的`FTPClient`和`FTPSClient`类来创建FTP客户端,实现文件上传、下载、删除等操作。对于服务器端,可以利用FTPServer API来配置和启动FTP服务,设置用户权限,以及处理客户端...

    ftp工具类和jar包

    在Java编程中,我们通常会利用相关的库来实现FTP功能,如Apache Commons Net库。本话题将详细介绍如何使用Java实现FTP工具类以及所需的jar包。 Apache Commons Net是一个强大的Java网络实用程序库,它提供了多种...

    activemq-rar-5.10.0.rar

    7. **commons-net-3.3.jar**:Apache Commons Net库提供了各种网络协议的实现,如FTP、SMTP等,可能在ActiveMQ中用于网络通信。 综上所述,这个RAR文件包含了构建和运行一个基于Apache ActiveMQ 5.10.0的消息服务所...

    activemq-rar-5.9.1.rar

    7. **Commons Net**:`commons-net-3.3.jar`是Apache Commons的一个子项目,提供了网络协议如TCP、FTP、SMTP等的实现。在ActiveMQ中,它可能被用于底层的网络通信支持。 综上所述,ActiveMQ RAR 5.9.1 包含了运行和...

    字典全切分所需lib.zip_字典切分

    5. **commons-net-3.3.jar**: Apache Commons Net是Java网络编程的实用工具集,提供了FTP、NNTP、SMTP等多种协议的支持。虽然字典切分通常不需要这些功能,但此库可能用于文件传输,例如下载或更新字典文件。 6. **...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例068 判断网页请求与FTP请求 86 实例069 判断文件类型 87 实例070 判断字符串是否为数字 89 实例071 验证IP地址的有效性 90 实例072 鉴别非法电话号码 91 4.3 操作字符串 92 实例073 根据标点符号对字符串进行...

Global site tag (gtag.js) - Google Analytics