文档章节

基于 apache 的 commons-net-3.3.jar 的 ftp java代码上传下载文件

DavidBao
 DavidBao
发布于 2014/12/15 22:12
字数 493
阅读 131
收藏 1
  1. package com.genomics.ib.item.control;  

  2.   

  3. import java.io.File;      

  4. import java.io.FileInputStream;      

  5. import java.io.FileOutputStream;  

  6. import java.io.InputStream;  

  7. import java.io.OutputStream;  

  8.   

  9. import org.apache.commons.net.ftp.FTPClient;      

  10. import org.apache.commons.net.ftp.FTPFile;  

  11. import org.apache.commons.net.ftp.FTPReply;      

  12.       

  13. /**  

  14.  * @author   

  15.  * package com.genomics.ib.item.control  

  16.  * @title ItemFtp  

  17.  * @Description :  FTP 上传下载工具类  

  18.  * @time 2013-11-27   

  19.  */  

  20. public class ItemFtp {        

  21.          

  22.     private  FTPClient ftp;        

  23.     /**    

  24.      *     

  25.      * @param path 上传到ftp服务器哪个路径下       

  26.      * @param addr 地址    

  27.      * @param port 端口号    

  28.      * @param username 用户名    

  29.      * @param password 密码    

  30.      * @return    

  31.      * @throws Exception    

  32.      */      

  33.     private  boolean connect(String path,String addr,int port,String username,String password) throws Exception {        

  34.         boolean result = false;        

  35.         ftp = new FTPClient();        

  36.         int reply;        

  37.         ftp.connect(addr,port);        

  38.         ftp.login(username,password);        

  39.         ftp.setFileType(FTPClient.BINARY_FILE_TYPE);        

  40.         reply = ftp.getReplyCode();        

  41.         if (!FTPReply.isPositiveCompletion(reply)) {        

  42.             ftp.disconnect();        

  43.             return result;        

  44.         }        

  45.         ftp.changeWorkingDirectory(path);        

  46.         result = true;        

  47.         return result;        

  48.     }        

  49.       

  50.       

  51.       

  52.     /**  

  53.      * @author   

  54.      * @class  ItemFtp  

  55.      * @title  upload  

  56.      * @Description :   

  57.      * @time 2013 2013-11-27  

  58.      * @return void  

  59.      * @exception :(Error note)  

  60.      * @param file 上传的文件或文件夹  

  61.      * @param path 上传的文件的路径   

  62.      * @throws Exception  

  63.      */  

  64.     private void upload(File file , String path) throws Exception{     

  65.           

  66.         System.out.println( " file.isDirectory() : " + file.isDirectory()  );  

  67.           

  68.         if(file.isDirectory()){             

  69.             ftp.makeDirectory(file.getName());                  

  70.             ftp.changeWorkingDirectory(file.getName());        

  71.             String[] files = file.list();               

  72.             for (int i = 0; i < files.length; i++) {        

  73.                 File file1 = new File(file.getPath()+"\\"+files[i] );        

  74.                 if(file1.isDirectory()){        

  75.                     upload(file1 , path );        

  76.                     ftp.changeToParentDirectory();        

  77.                 }else{                      

  78.                     File file2 = new File(file.getPath()+"\\"+files[i]);        

  79.                     FileInputStream input = new FileInputStream(file2);        

  80.                     ftp.storeFile(file2.getName(), input);        

  81.                     input.close();                              

  82.                 }                   

  83.             }        

  84.         }else{        

  85.             File file2 = new File(file.getPath());      

  86.               

  87.             System.out.println( " file.getPath() : " + file.getPath()  + " | file2.getName() : " + file2.getName() );  

  88.               

  89.             InputStream input = new FileInputStream(file2);     

  90.                

  91.             ftp.changeWorkingDirectory(path);     

  92.             ftp.storeFile(file2.getName(), input);        

  93.               

  94.             input.close();  //关闭输入流  

  95.             ftp.logout();  //退出连接  

  96.         }        

  97.     }      

  98.       

  99.       

  100.          

  101.     /**  

  102.      * @author   

  103.      * @class  ItemFtp  

  104.      * @title  download  

  105.      * @Description : FPT 下载文件方法  

  106.      * @time 2013 2013-11-27  

  107.      * @return void  

  108.      * @exception :(Error note)  

  109.      * @param reomvepath 下载的文件的路径   

  110.      * @param fileName  下载的文件名   

  111.      * @param localPath 下载的文件本地路径  

  112.      * @throws Exception  

  113.      */  

  114.     @SuppressWarnings("unused")  

  115.     private void download(String reomvepath , String fileName , String localPath  ) throws Exception{     

  116.                

  117.             ftp.changeWorkingDirectory(reomvepath);    

  118.               

  119.          // 列出该目录下所有文件  

  120.             FTPFile[] fs = ftp.listFiles();  

  121.             // 遍历所有文件,找到指定的文件  

  122.             for (FTPFile ff : fs) {  

  123.                  if (ff.getName().equals(fileName)) {  

  124.                   // 根据绝对路径初始化文件  

  125.                   File localFile = new File(localPath + "/" + ff.getName());  

  126.                   // 输出流  

  127.                   OutputStream is = new FileOutputStream(localFile);  

  128.                   // 下载文件  

  129.                   ftp.retrieveFile(ff.getName(), is);  

  130.                   System.out.println("下载成功!");  

  131.                   is.close();    

  132.                  }  

  133.             }  

  134.               

  135.             ftp.logout();  //退出连接  

  136.               

  137.     }   

  138.       

  139.    public static void main(String[] args) throws Exception{      

  140.            

  141.        ItemFtp t = new ItemFtp();      

  142.         

  143.        boolean lianjie = t.connect("D:\\", "127.0.0.1", 21, "jiang", "jiang");      

  144.       System.out.println( "连接 :" + lianjie  );  

  145.         

  146.       //上传  

  147. //      File file = new File("d:\\test.txt");    

  148. //      t.upload(file , "E:\\ftptest\\mulu");    

  149.         

  150.       //下载  

  151.       t.download("E:\\ftptest\\mulu", "test.txt", "D:\\db");  

  152.         

  153.         

  154.    }      

借助jar包 apache 的 commons-net-3.3.jar

© 著作权归作者所有

DavidBao
粉丝 114
博文 213
码字总数 126729
作品 0
昌平
私信 提问
加载中

评论(0)

Apache commons ftp API 的Spike

由于公司给了我一个传FTP的任务,刚好可以学习一下,同时也进行了一些单元测试,spike了一把,哈哈。分享一下。 这里只对最简单常用的FtpClient的上传下载列表功能进行测试学习使用^-^ 创建一...

XzhiF
2013/12/13
723
9
CKEditor3.x 在Java项目中配置、包括图片上传(支持FTP、图片压缩)

CKEditor 3.x配置说明 一、基本使用: 1、所需文件架包 A. Ckeditor基本文件包,比如:ckeditor_3.6.2.zip 下载地址:http://ckeditor.com/download 2、配置使用 A.将下载下来的CKEditor压缩...

一枚Sir
2014/05/29
2.4K
0
Apache commons (Java常用工具包)简介

Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,下面是一个简述表,详细信息访问http://jakarta.apache.org/commons/index.html BeanUtils Commons-BeanUtils 提供对 Java...

Coder小兵
2012/02/04
1K
1
struts2的搭建(包括与spring整合)流程

一.非集成Spring 1.创建javaWeb工程: --------------------------------------------------------------------------------------------------------------------------------------------......

长平狐
2013/01/06
2.6K
0
推荐一个java操作ftp的工具类

写在前面 作为经常使用电脑整理文件的童鞋,应该都使用过从ftp服务器上传下载文件,那么今天就了解下如何通过java程序操作ftp服务的文件 首先你要知道ftp的ip,路径,端口,有操作权限的账号...

charmsongo
2018/12/08
150
2

没有更多内容

加载失败,请刷新页面

加载更多

2019 年 Google 编程之夏活动报告

本文首发于: Jenkins 中文社区 原文链接 作者:Martin d'Anjou,Jeff Pearce,Oleg Nenashev,Marky Jackson 译者:s1mple_zj 2019 年 Google 编程之夏活动报告 主要介绍了 GSoC 2019 活动的...

Jenkins中文社区
40分钟前
43
0
Spring Batch 在默认情况下的任务执行

在默认情况,如果你对 Spring Batch 不进行配置的话。 Spring Batch 将会对所有存在的作业(Job)进行执行。 考察项目:https://github.com/cwiki-us-spring/cwiki-us-spring-batch-examples...

honeymoose
今天
47
0
OSChina 周三乱弹 —— 提高不了工作效率和脸有关系

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 1 《夏令时记录(piano.ver)》- ゆめこ 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
今天
148
3
List的一波操作

public static void main(String[] args) { List<Entity> list = new ArrayList<>(); list.add(new Entity(1)); list.add(new Entity(2)); list.add(new Entity(3)); ......

那个猩猩很亮
今天
75
0
Spring基础

主要用于service层; 轻量级java开发框架; 各层 web层:struts,spring-MVC service层:spring dao层:hibernate,mybatis , jdbcTemplate --> spring-data Spring核心:控制反转IOC 切面编...

七宝1
今天
30
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部