java实现ftp文件下载的源代码

这几天做的一个项目中用到了ftp文件传输,用java实现了ftp文件的下载。

一、win7下搭建ftp服务器

详见:http://jingyan.baidu.com/article/4b52d7026f50eefc5c774bcc.html

二、用java实现ftp文件下载

使用org.apache.commons.net  jar包,下载地址:http://commons.apache.org/proper/commons-net/download_net.cgi

下载完成后,新建java工程,导入commons-net-3.3.jar包,源代码如下:

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.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

public class ftpDownload {
	public static boolean downFile(String url, int port,
			String username, String password,
			String remotePath,String fileName,
			String localPath) {
	    boolean success = false;
	    FTPClient ftp = new FTPClient();
	    try {
	        int reply;
	        ftp.connect(url, port);
	        //如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
	        ftp.login(username, password);//登录
	        reply = ftp.getReplyCode();
	        if (!FTPReply.isPositiveCompletion(reply)) {
	            ftp.disconnect();
	            return success;
	        }
	        ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录
	        FTPFile[] fs = ftp.listFiles();
	        for(FTPFile ff:fs){
	            if(ff.getName().equals(fileName)){
	                File localFile = new File(localPath+"/"+ff.getName());  

	                OutputStream is = new FileOutputStream(localFile);
	                ftp.retrieveFile(ff.getName(), is);
	                is.close();
	            }
	        }  

	        ftp.logout();
	        success = true;
	    } catch (IOException e) {
	        e.printStackTrace();
	    } finally {
	        if (ftp.isConnected()) {
	            try {
	                ftp.disconnect();
	            } catch (IOException ioe) {
	            }
	        }
	    }
	    return success;
	}

	public static void main(String[] args) {
		//boolean flag = downFile("202.114.21.202", 21,
		//		"ASUS", "etc2015", "F:\\ftpdownload", "test.txt", "F:\\Java");
		boolean flag = downFile("202.114.21.22", 21,
				"zdt", "zdt", "E:\\ftpTest", "20141126172643-XLW-X14.jpg", "F:\\Java");
		if (flag) {
			System.out.println("下载成功!");
		} else {
			System.out.println("下载失败!");
		}
	}
}

运行程序,测试发现ftp文件下载成功!

时间: 2024-10-29 21:03:58

java实现ftp文件下载的源代码的相关文章

java/struts/Servlet文件下载与ftp文件下载

1.前端代码 使用超链接到Struts的Action或Servlet <a target="_blank" href="ftpFileAction!downloadFile.action?transUrl=ftp://10.0.2.1/tazi/a.xml">请点击下载</a> 2.后台代码 Action或Servlet String s1=transUrl; // transUrl是前台接受的参数 s1=s1.substring(6); s

Java实现FTP文件与文件夹的上传和下载1

Java实现FTP文件与文件夹的上传和下载 http://www.cnblogs.com/winorgohome/archive/2016/11/22/6088013.html FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件.在FTP的使用当中,用户经常遇

Java中arraylist和linkedlist源代码分析与性能比較

Java中arraylist和linkedlist源代码分析与性能比較 1,简单介绍 在java开发中比較经常使用的数据结构是arraylist和linkedlist,本文主要从源代码角度分析arraylist和linkedlist的性能. 2,arraylist源代码分析 Arraylist底层的数据结构是一个对象数组.有一个size的成员变量标记数组中元素的个数,例如以下图: * The array buffer into which the elements of the ArrayLis

Java中都通用文件下载(ContentType、文件头、response、out四步骤)

Java中都通用文件下载(ContentType.文件头.response.out四步骤) 新浪微博:IT国子监(记得关注噢) http://weibo.com/itguozijian   我们就直接切入主题啦,文件下载只需要四步: 1.设置文件ContentType类型 2.设置文件头 3.通过response获取ServletOutputStream对象(out) 4.写到输出流(out)中 下载代码: 这里我使用的是SpringMVC,不过它在这里的唯一用途就是用来获取ServletCon

java使用ftp上传文件

ftpServer是apache MINA项目的一个子项目,它实现了一个ftp服务器,与vsftpd是同类产品.Filezilla是一个可视化的ftp服务器. ftp客户端也有很多,如Filezilla,FlashFXP,SmartFtp等,其中只有Filezilla是免费的. 今天使用Filezilla上传文件总是失败,一直显示 错误: 20 秒后无活动,连接超时 错误: 文件传输失败 用FlashFXP却可以很正常上传文件,但FlashFXP试用期只有30天,网上搜索注册码未果,遂想学学ja

Java 利用FTP上传,下载文件,遍历文件目录

Java实现FTP上传下载文件的工具包有很多,这里我采用Java自带的API,实现FTP上传下载文件.另外JDK1.7以前的版本与其之后版本的API有了较大的改变了. 例如: JDK1.7之前 JDK1.7 ftpClient = new FtpClinet() ftpClient = FtpClient.create(ip) ftpclient.login(user,password) ftpclient.login(user,null,password) ftpclient.binary()

Java的四种引用源代码例子

Java的四种引用源代码例子 不解释,直接上代码,千言万语顶不住一行代码. package com.apkkids.javalanguage; import java.lang.ref.PhantomReference; import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; import java.lang.ref.SoftReference; import java.lang.ref.WeakReference

java swing实现俄罗斯方块游戏源代码下载

原文:java swing实现俄罗斯方块游戏源代码下载 源代码下载:http://www.zuidaima.com/share/1550463372790784.htm 源代码截图:

java—servlet实现文件下载功能

最近在学javaweb技术,利用所学知识做了一个简单的项目,在服务器上实现给用户下载文件的功能.自动列出文件夹下的文件提供下载,支持中文文件名. 结果图 其中使用了tomcat来部署服务器,代码中应用了少许EL表达式和JSTL标签,使用了jsp和servlet,当然还有java和http的基础知识,但是个人觉得重点是http的Content-Disposition头信息和Content-type头信息在servlet中下载方面的应用,详见DownloadPageServlet.java源码. 关