相关下载:
commons-net down:http://commons.apache.org/net/download.html
公司提出需要通过ftp上传下载文件,总结一下(备忘)
package cn.xt.net.ftp;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.SocketException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.junit.Test;
public class Ftpclient {
final static String PATH="d:/zhanghuadong/";
final static String SERVICE_ADDRESS="192.168.0.115";
final static String USER="ftpuser";
final static String PASSWORD="ftpuser";
final static String DOWN_FILE_NAME="XF200070750845720090218";
/**
* Ftp下载
*
*/
@Test
public void ftpQuery(){
FTPClient client=new FTPClient();
try {
client.connect(SERVICE_ADDRESS);
boolean islogon=client.login(USER, PASSWORD);
FTPFile[] files=null;
if(islogon){
int reply=client.getReplyCode();
/**判断返回代码 */
if(!FTPReply.isPositiveCompletion(reply)){
throw new Exception("对不起,"+SERVICE_ADDRESS+" user:"+USER+" password:"+PASSWORD+" 连接出错!");
}
/**更改下载的目录 */
client.changeWorkingDirectory("qyyd_fsend/");
files=client.listFiles();
File file=null;
for (int i = 0; i < files.length; i++) {
System.out.println(files[i].getName());
if(files[i].getName().equals("XF200070750845720090218")){
System.out.println("down...");
file=new File(PATH+files[i].getName());
}
}
if(file!=null){
OutputStream out=new FileOutputStream(file);
client.retrieveFile("XF200070750845720090218", out);
System.out.println("down success...");
out.close();
}
System.out.println("logon 成功!");
}
client.logout();
client.disconnect();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch(Exception e){
e.printStackTrace();
}
}
public void ftpUpload(){
FTPClient ftp=new FTPClient();
InputStream stream=null;
try{
//ftp.setDefaultPort(221);
ftp.connect(SERVICE_ADDRESS);
boolean islogon=ftp.login(USER, PASSWORD);
if(islogon){
int recode=ftp.getReplyCode();
if(!FTPReply.isPositiveCompletion(recode)){
throw new Exception("对不起,"+SERVICE_ADDRESS+" user:"+USER+" password:"+PASSWORD+" 连接出错!");
}
stream=new FileInputStream(new File(PATH+DOWN_FILE_NAME));
FTPFile[] files=ftp.listFiles();
int overname=0;
for (int i = 0; i < files.length; i++) {
if(files[i].getName().indexOf(DOWN_FILE_NAME)!=-1){
overname++;
}
}
if(overname>0){
ftp.rename(DOWN_FILE_NAME, DOWN_FILE_NAME+"."+overname);
}
//设置文件类型 文本类型 二进制文件 区别文本会根据系统加换行符 二进制则不会
ftp.setFileType(FTPClient.ASCII_FILE_TYPE);
boolean isstore=ftp.storeFile(DOWN_FILE_NAME,stream);
stream.close();
if(!isstore){
System.out.println("upload fail ...");
}
System.out.println("upload success...");
}
}catch(Exception e){
e.printStackTrace();
}finally{
try {
ftp.logout();
ftp.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args){
Ftpclient client=new Ftpclient();
client.ftpUpload();
}
}
分享到:
相关推荐
在本文中,我们将深入探讨这个库的核心概念、设计模式以及如何通过源码学习来理解其工作原理。 首先,Apache Commons Pool2提供了一个`ObjectPool`接口,它是整个对象池的核心。这个接口定义了获取、返回对象、验证...
【Linux 5.4 RHCE Apache 高级配置学习笔记】 在Linux 5.4的环境中,Red Hat Certified Engineer (RHCE) 认证需要掌握Apache服务器的高级配置技巧。本学习笔记旨在帮助读者深入理解如何高效管理和优化Apache服务器...
### Apache Web服务器配置与使用工作笔记 #### 一、Apache Web服务器简介 Apache HTTP Server(简称Apache)是一款开放源码的Web服务运行平台,在互联网上有着广泛的使用。它是由Apache软件基金会的一个开源项目...
### Struts2学习笔记知识点详解 #### 一、Struts2框架的基本引入步骤 ##### 1. 导入Struts2相关Jar包 在引入Struts2框架时,首先需要将Struts2的相关Jar包导入到项目的类路径中。这些Jar包通常包括核心库以及其他...
"欢迎大家学习交流"表明作者鼓励社区成员共享知识,共同探讨和改进这个插件。 标签 "elasticsearch elasticsearch" 强调了这个资源与Elasticsearch紧密相关,涵盖了Elasticsearch的核心技术和应用。 从压缩包内的...
apache-tomcat-5.5.33.tar.gz、apache-tomcat-6.0.35.tar.gz、linux 命令手册.chm、mysql-connector-java-5.1.6-bin.jar、mysql-standard-4.0.26-pc-linux-gnu-i686.tar.gz、samba-2.2.7a-7.9.0.i386.rpm、samba-...
Hadoop是一种开源的分布式存储和计算系统,它由Apache软件基金会开发。在初学者的角度,理解Hadoop的组成部分以及其架构设计是学习Hadoop的基础。 首先,Hadoop的分布式文件系统(HDFS)是其核心组件之一,它具有高...
【PHP入门到精通学习笔记】 PHP(Personal Home Page)是一种广泛使用的开源脚本语言,尤其在Web开发领域中。PHP最初是由Rasmus Lerdorf创建的,后来由Zend公司负责维护和商业化。PHP的设计目标是使得编写过程更...
LDAP学习笔记 LDAP,全称为轻量级目录访问协议,是一种用于访问和管理分布式目录服务的网络协议。它源于X.500标准,但在设计上更为轻便且可定制,支持TCP/IP通信,这对于互联网访问至关重要。目录服务主要用于快速...
【Tomcat 学习精华笔记】 Tomcat 是一个广泛应用的开源服务器,主要用于托管Java Web应用程序。它虽然不是严格意义上的应用服务器,但作为一个Servlet容器,它能够处理Servlet和JSP,并且具备了一些应用服务器的...
在深入探讨Struts框架的学习笔记之前,我们先简要回顾一下Struts框架的基本概念与重要性。Struts是一个开源的MVC(Model-View-Controller)框架,主要用于简化Java Web应用的开发。它提供了一套标准的方式来组织和...
1. **CGI**(Common Gateway Interface):早期的动态网页技术,将Web服务器和应用程序之间建立桥梁。 2. **ASP**:微软推出的Web开发技术,后来发展为ASP.NET。 3. **JSP**:基于Java的动态网页技术,最初由Sun ...
2. **CORBA(Common Object Request Broker Architecture)**:通用对象请求代理架构,用于实现分布式对象之间的交互。 3. **RMI(Remote Method Invocation)**:Java RMI允许对象通过网络调用另一个对象的方法,...
- **CGI (Common Gateway Interface)**:最早的动态网页技术之一,但因其配置复杂而逐渐被其他技术取代。 - **ASP (Active Server Pages)**:由微软开发,后来演进为ASP.NET。 - **JSP (JavaServer Pages)**:最初由...
1. CGI(Common Gateway Interface,通用网关接口):早期的动态网页技术,用于连接Web服务器和各种编程语言。 2. ASP(Active Server Pages,活动服务器页面):微软的产品,后来发展为ASP.NET。 3. JSP(Java...
Apache版本是最初的开源版本,适用于学习。Cloudera成立于2008年,是最早将Hadoop商用化的公司之一,提供了CDH、Cloudera Manager和Cloudera Support等产品。Hortonworks成立于2011年,其主打产品为Hortonworks Data...
### ThinkPHP3.1.2经典笔记知识点详解 #### 一、ThinkPHP 框架简介 ##### 1.1 ThinkPHP 概述 - **ThinkPHP** 是一个开源的 PHP 开发框架,旨在简化 Web 应用程序的开发过程。它采用 MVC (Model-View-Controller) ...