近期公司需求,需要从现场下载文件进行解析.关键是这个文件如何获取!
当然是通过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
分享到:
相关推荐
本教程将深入讲解如何利用Apache Commons Net库的3.3版本在Android应用中实现FTP功能。 首先,Apache Commons Net是一个Java库,提供了一系列用于网络通信的类和实用工具,包括FTP客户端组件。在Android项目中,...
在3.3版本中,这个库提供了丰富的功能,使得开发者可以方便地在Java应用程序中实现文件和文件夹的上传、下载以及日志输出。对于Android开发者来说,这是一个非常有用的工具,因为它兼容Android平台,能够帮助我们在...
在这个"commons-net-3.3源码包"中,我们可以深入理解其实现细节,对其进行定制和扩展,这对于开发人员来说非常有用。下面我们将详细探讨此源码包中的关键知识点。 1. **FTP协议实现**: Commons Net库的核心功能之...
它提供了一个全面的FTP客户端实现,包括连接管理、上传下载文件、创建和删除目录、设置权限等功能。开发者可以利用这些API来构建复杂的FTP应用,无需深入了解底层的网络通信细节。 2. TELNET模块:这个库也提供了对...
10. **API文档**:`commons-net-3.3-api.chm`文件包含了完整的API文档,开发者可以通过查阅此文档了解每个类和方法的用法和功能。 在实际开发中,使用Apache Commons-Net可以极大地提高开发效率,减少代码量,并且...
在FTP连接方面,"commons-net-3.3.jar"提供了全面的FTP客户端功能,支持FTP命令的执行、文件上传下载、被动模式、主动模式、SSL/TLS安全连接等多种操作。它的API设计简洁,易于理解和使用,是Java开发中进行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....
1. **commons-net-3.3-bin.zip**:这是Apache Commons Net库,提供了一系列与网络相关的实用工具和协议实现,如FTP、SMTP、NNTP等。版本3.3包含了对TCP/IP协议栈的各种操作的支持,如DNS查询、telnet、HTTP和FTP...
然后,可以通过Apache Commons Net提供的`FTPClient`和`FTPSClient`类来创建FTP客户端,实现文件上传、下载、删除等操作。对于服务器端,可以利用FTPServer API来配置和启动FTP服务,设置用户权限,以及处理客户端...
在Java编程中,我们通常会利用相关的库来实现FTP功能,如Apache Commons Net库。本话题将详细介绍如何使用Java实现FTP工具类以及所需的jar包。 Apache Commons Net是一个强大的Java网络实用程序库,它提供了多种...
总之,Java通过Apache Commons Net库与FTP服务器交互,可以方便地实现文件的上传、下载和删除等功能,为开发者提供了强大的工具来处理文件交换的需求。在实际项目中,应结合具体业务场景,适当优化和扩展这些基础...
7. **commons-net-3.3.jar**:Apache Commons Net库提供了各种网络协议的实现,如FTP、SMTP等,可能在ActiveMQ中用于网络通信。 综上所述,这个RAR文件包含了构建和运行一个基于Apache ActiveMQ 5.10.0的消息服务所...
7. **Commons Net**:`commons-net-3.3.jar`是Apache Commons的一个子项目,提供了网络协议如TCP、FTP、SMTP等的实现。在ActiveMQ中,它可能被用于底层的网络通信支持。 综上所述,ActiveMQ RAR 5.9.1 包含了运行和...
5. **commons-net-3.3.jar**: Apache Commons Net是Java网络编程的实用工具集,提供了FTP、NNTP、SMTP等多种协议的支持。虽然字典切分通常不需要这些功能,但此库可能用于文件传输,例如下载或更新字典文件。 6. **...
实例068 判断网页请求与FTP请求 86 实例069 判断文件类型 87 实例070 判断字符串是否为数字 89 实例071 验证IP地址的有效性 90 实例072 鉴别非法电话号码 91 4.3 操作字符串 92 实例073 根据标点符号对字符串进行...