`
rantim
  • 浏览: 19103 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

apache common-net 学习笔记

    博客分类:
  • ftp
阅读更多
相关下载:
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 Common-net Ftp客户端实例

    NULL 博文链接:https://yangyangmyself.iteye.com/blog/1299997

    apache-maven-3.8.6-bin.tar.tz--test

    apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-...

    开发工具 apache-tomcat-8.0.41-windows-x86

    开发工具 apache-tomcat-8.0.41-windows-x86开发工具 apache-tomcat-8.0.41-windows-x86开发工具 apache-tomcat-8.0.41-windows-x86开发工具 apache-tomcat-8.0.41-windows-x86开发工具 apache-tomcat-8.0.41-...

    apache-common-compress.rar

    用于压缩/解压缩的java开发工具包,基本上主流格式全包含,其中apache-common-compress内有5个jar包,两个是test的不用管,剩余三个,一个是源码包,一个是开发包另一个是javadoc。解压除RAR外的所有格式。 apache-...

    apache-maven-3.8.6.zip

    apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-...

    apache-hive-2.1.1-bin.tar

    apache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tarapache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tarapache-hive-2.1.1-bin.tar apache-hive-2.1.1-...

    apache-tomcat-10.0.8.zip

    apache-tomcat-10.0.8.exe、 apache-tomcat-10.0.8.tar.gz、 apache-tomcat-10.0.8.zip、 apache-tomcat-10.0.8-windows-x64.zip、 apache-tomcat-10.0.8-windows-x86.zip、 apache-tomcat-10.0.8-deployer.tar.gz、...

    apache-tomcat-9.0.45-windows-x64

    apache-tomcat-9.0.45-windows-x64apache-tomcat-9.0.45-windows-x64apache-tomcat-9.0.45-windows-x64apache-tomcat-9.0.45-windows-x64apache-tomcat-9.0.45-windows-x64apache-tomcat-9.0.45-windows-x64apache-...

    apache commons-net-3.5

    apache commons-net-3.5 实现 FTP 上传文件的神器,拿走不谢! 主要涉及上传文件的jar,希望能帮到你。

    flink-table-common-1.12.7-API文档-中文版.zip

    Maven坐标:org.apache.flink:flink-table-common:1.12.7; 标签:apache、flink、table、common、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...

    apache-maven-3.8.8.zip

    apache-maven-3.8.8.zip压缩包内容: apache-maven-3.8.8-bin.tar.gz apache-maven-3.8.8-bin.zip apache-maven-3.8.8-src.tar.gz apache-maven-3.8.8-src.zip

    apache-jakarta旗下的所有开源项目jar文件

    apache-jakarta旗下的所有开源项目jar文件 apache-jakarta-commons-codec.jar apache-jakarta-commons-collections.jar apache-jakarta-commons-discovery.jar apache-jakarta-commons-email.jar apache-jakarta-...

    apache-tomcat-7.0.53

    apache-tomcat-7.0.53apache-tomcat-7.0.53apache-tomcat-7.0.53apache-tomcat-7.0.53

    rh-java-common-apache-commons-net-3.2-8.11.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    apache-tomcat-9.0.7全系列(32bit,64bit,安装版,解压版,文档)

    2018-04-18 01:19 5,623,087 apache-tomcat-9.0.7-fulldocs.tar.gz 2018-04-18 01:19 11,168,080 apache-tomcat-9.0.7-windows-x64.zip 2018-04-18 01:19 10,830,323 apache-tomcat-9.0.7-windows-x86.zip 2018-04-...

    parquet-common-1.10.0-API文档-中文版.zip

    Maven坐标:org.apache.parquet:parquet-common:1.10.0; 标签:apache、common、parquet、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...

    WLSPlugin12.2.1.4.0-Apache2.2-Apache2.4-Linux_x86_64-12.2.1.4.0.zip

    Weblogic跟Apache整合,Apache2.*版代理weblogic12.2.1.4的插件so

    apache-jmeter-5.6.3

    apache-jmeter-5.6.3.zip apache-jmeter-5.6.3.tgz apache-jmeter-5.6.3_src.zip apache-jmeter-5.6.3_src.tgz

    apache-ant-1.9.16-bin.zip

    apache-ant-1.9.16-bin.zip

    apache-tomcat-6.0.53-src

    apache-tomcat-6.0.53-src,apache tomcat 6.0.53的源码。 压缩包文件清单: apache-tomcat-6.0.53-src.tar.gz apache-tomcat-6.0.53-src.tar.gz.asc apache-tomcat-6.0.53-src.tar.gz.md5 apache-tomcat-6.0.53-...

Global site tag (gtag.js) - Google Analytics