博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于commons-net实现ftp创建文件夹、上传、下载功能
阅读量:6261 次
发布时间:2019-06-22

本文共 7573 字,大约阅读时间需要 25 分钟。

原文:http://www.open-open.com/code/view/1420774470187

 

package com.demo.ftp;            import java.io.FileInputStream;      import java.io.FileOutputStream;      import java.io.IOException;      import java.io.InputStream;      import java.io.OutputStream;      import java.io.PrintWriter;      import java.net.ConnectException;            import org.apache.commons.net.PrintCommandListener;      import org.apache.commons.net.ftp.FTP;      import org.apache.commons.net.ftp.FTPClient;      import org.apache.commons.net.ftp.FTPReply;            /**      * @author wobendiankun 2015-1-8 下午08:11:08      */      public class FtpClientUtil {          /**          * ftp服务器地址          */          private  String server;          /**          * 端口          */          private  int port;          /**          * 用户名          */          private  String username;          /**          *           */          private  String password;                    public FtpClientUtil () {              server = "localhost";              port = 21;              username = "kun";              password = "111111";          }                    public FtpClientUtil(String server, int port, String username,                  String password) {              this.server = server;              this.port = port;              this.username = username;              this.password = password;          }          /**上传文件          * @param remoteFileName 远程文件名称          * @param locaFileName 本地文件名称          */          public void upload(String remoteFileName,String locaFileName){              FTPClient ftp=null;               try {                  ftp = new FTPClient();                  ftp.addProtocolCommandListener( new PrintCommandListener( new PrintWriter( System.out ), true ) );                  //连接ftp服务器                  connect( ftp );                  //设置属性                  setProperty( ftp );                  //上传文件                  upload( ftp, remoteFileName, locaFileName );                  //退出                  logout( ftp );              } catch (Exception e) {                  e.printStackTrace();              }finally {                  if (ftp.isConnected()) {                      try {                          ftp.disconnect();                      } catch (IOException f) {                      }                  }              }                        }          /**上传文件          * @param remoteFileName 远程文件名称          * @param locaFileName 本地文件名称          */          public void download(String remoteFileName,String locaFileName){              FTPClient ftp=null;               try {                  ftp = new FTPClient();                  ftp.addProtocolCommandListener( new PrintCommandListener( new PrintWriter( System.out ), true ) );                  //连接ftp服务器                  connect( ftp );                  //设置属性                  setProperty( ftp );                  //下载文件                  download( ftp, remoteFileName, locaFileName );                  //退出                  logout( ftp );              } catch (Exception e) {                  e.printStackTrace();              }finally {                  if (ftp.isConnected()) {                      try {                          ftp.disconnect();                      } catch (IOException f) {                      }                  }              }          }          /**创建文件夹          * @param remotePathName 远程文件夹名称          */          public void mkdir(String remotePathName) {              FTPClient ftp=null;               try {                  ftp = new FTPClient();                  ftp.addProtocolCommandListener( new PrintCommandListener( new PrintWriter( System.out ), true ) );                  //连接ftp服务器                  connect( ftp );                  //设置属性                  setProperty( ftp );                  //创建文件夹                  mkdir( ftp, remotePathName);                  //退出                  logout( ftp );              } catch (Exception e) {                  e.printStackTrace();              }finally {                  if (ftp.isConnected()) {                      try {                          ftp.disconnect();                      } catch (IOException f) {                      }                  }              }          }          /**          * @param ftp          * @param remotePathName          */          private void mkdir(FTPClient ftp, String remotePathName) throws Exception{              ftp.makeDirectory(remotePathName);          }                /**          * @param ftp          * @param remoteFileName          * @param locaFileName          */          private void download(FTPClient ftp, String remoteFileName,                  String locaFileName) throws Exception{              OutputStream output=null;              output = new FileOutputStream(locaFileName);              ftp.retrieveFile(remoteFileName, output);               output.close();          }                /**          * @param ftp          * @throws Exception           */          private void setProperty(FTPClient ftp) throws Exception {              ftp.enterLocalPassiveMode();              //二进制传输,默认为ASCII              ftp.setFileType(FTP.BINARY_FILE_TYPE);          }                /**          * @param ftp          */          private void logout(FTPClient ftp) throws Exception{              ftp.noop();              ftp.logout();          }                /**          * @param ftp          * @param remoteFileName          * @param locaFileName          */          private void upload(FTPClient ftp, String remoteFileName,                  String locaFileName) throws Exception{              //上传              InputStream input;                    input = new FileInputStream(locaFileName);                    ftp.storeFile(remoteFileName, input);                    input.close();          }                /**          * @param ftp          */          private void connect(FTPClient ftp) throws Exception{              //连接服务器              ftp.connect( server, port);              int reply = ftp.getReplyCode();              //是否连接成功              if ( !FTPReply.isPositiveCompletion( reply ) )         {                  throw new ConnectException( server+" 服务器拒绝连接" );              }              //登陆              if (!ftp.login(username, password)) {                   throw new ConnectException( "用户名或密码错误" );              }          }      }  FtpTest    package com.demo.ftp;            /**      * @author wobendiankun 2015-1-8 下午08:34:36      */      public class FtpTest {                public static void main(String[] args) {              //上传文件              //upload();              //下载文件              //download();              //创建文件夹              mkdir();          }                /**          *           */          private static void mkdir() {              FtpClientUtil clientUtil=new FtpClientUtil();              clientUtil.mkdir("test");          }                /**          *           */          private static void download() {              String remoteFileName="./111.txt";              String locaFileName="F:\\test\\txt\\3333.txt";              FtpClientUtil clientUtil=new FtpClientUtil();              clientUtil.download(remoteFileName, locaFileName);          }                /**          *           */          private static void upload() {              String remoteFileName="./111.txt";              String locaFileName="F:\\test\\txt\\aaa.txt";              FtpClientUtil clientUtil=new FtpClientUtil();              clientUtil.upload(remoteFileName, locaFileName);          }      }

 

转载地址:http://eszpa.baihongyu.com/

你可能感兴趣的文章
学习总结汇总
查看>>
Beta阶段测试报告
查看>>
JQ 练习题
查看>>
AndroidStudio、gradle、buildToolsVersion关系
查看>>
WPF入门教程系列八——布局之Grid与UniformGrid(三)
查看>>
递归调用顺序问题
查看>>
Git学习笔记一《版本控制之道-使用Git》
查看>>
Java8新特性--日期和时间API
查看>>
python itertools
查看>>
Eclipse自动补全+常用快捷键
查看>>
Dubbo 浅读
查看>>
payload有效载荷(转)
查看>>
利用谷歌控制台console调用后台代码
查看>>
jquery 点击按钮实现listbox的显示与隐藏,点击其他地方按钮外的地方,隐藏listbox...
查看>>
CSS3 盒阴影(box-shadow)详解
查看>>
PHP基础之 file_get_contents() 函数
查看>>
跨站请求伪造攻击 CSRF
查看>>
strace
查看>>
linux mysql命令
查看>>
CentOS+Nginx+PHP+MySQL详细配置(图解)
查看>>