JAVA SFTP文件上,传下载及批量下载实例

  

<强> 1。jsch官方API查看地址(附件为需要的jar)
  

  http://www.jcraft.com/jsch/

  

<强> 2。jsch简介
  

  

JSch (Java安全通道)是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。
  

  

SFTP(安全文件传输协议)安全文件传送协议。可以为传输文件提供一种安全的加密方法.SFTP为SSH的一部份,是一种传输文件到服务器的安全方式,但是传输效率比普通的FTP要低。

  

<强> 3。api常用的方法:

  
      <李> put ():,,,,,李文件上传   <李> get ():,,,,,李文件下载   <李> cd ():,,,,,,李进入指定目录   <李> ls ():,,,,,,得到指定目录下的文件列表李   <李> rename ():,,重命名指定文件或目录   <李> rm ():,,,,,,李删除指定文件   <李> mkdir ():,,,李创建目录   <李>删除文件夹():,,,李删除目录   <李>把和得到都有多个重载方法,自己看源代码李   
  

<强> 4。对常用方法的使用,封装成一个跑龙套类
  

        进口java.io.File;   进口java.io.FileInputStream;   进口java.io.FileNotFoundException;   进口java.io.FileOutputStream;   进口java.io.IOException;   进口java.util.ArrayList;   进口java.util.Iterator;   进口并不知道;   进口java.util.Properties;   进口java.util.Vector;   进口org.apache.log4j.Logger;   进口com.jcraft.jsch.Channel;   进口com.jcraft.jsch.ChannelSftp;   进口com.jcraft.jsch.JSch;   进口com.jcraft.jsch.Session;   进口com.jcraft.jsch.SftpATTRS;   进口com.jcraft.jsch.SftpException;   进口com.jcraft.jsch.ChannelSftp.LsEntry;/* *   * sftp工具类   *   * @author xxx   * @date 2014-6-17   * @time下午1:39:44   * @version 1.0   */公开课SFTPUtils   {   私有静态日志记录器=Logger.getLogger (SFTPUtils.class.getName ());      私人字符串主机;//服务器连接ip   私人字符串的用户名;//用户名   私人密码字符串;//密码   私人int端口=22;//端口号   私人ChannelSftp sftp=零;   私人会话sshSession=零;      公共SFTPUtils () {}      公共SFTPUtils(字符串主机,int端口,用户名的字符串,字符串密码)   {   这一点。主机=主机;   这一点。用户名=用户名;   这一点。密码=密码;   这一点。端口=端口;   }      公共SFTPUtils(字符串琴弦主机、用户名、密码)   {   这一点。主机=主机;   这一点。用户名=用户名;   这一点。密码=密码;   }/* *   *通过SFTP连接服务器   */公共空间连接()   {   试一试   {   JSch JSch=new JSch ();   jsch。getSession(用户名、主机、端口);   sshSession=jsch。getSession(用户名、主机、端口);   如果(log.isInfoEnabled ())   {   log.info(“会话创建。”);   }   sshSession.setPassword(密码);   sshConfig=new属性();   sshConfig。把(“StrictHostKeyChecking”、“不”);   sshSession.setConfig (sshConfig);   sshSession.connect ();   如果(log.isInfoEnabled ())   {   log.info(“会话连接。”);   }   频道频道=sshSession.openChannel (sftp);   channel.connect ();   如果(log.isInfoEnabled ())   {   log.info(“开放通道。”);   }   sftp=(ChannelSftp)通道;   如果(log.isInfoEnabled ())   {   log.info(“连接到”+主机+“。”);   }   }   捕获(异常e)   {   e.printStackTrace ();   }   }/* *   *关闭连接   */公共空间断开()   {   如果这一点。sftp !=null)   {   如果(this.sftp.isConnected ())   {   this.sftp.disconnect ();   如果(log.isInfoEnabled ())   {   log.info (sftp已经关闭);   }   }   }   如果这一点。sshSession !=null)   {   如果(this.sshSession.isConnected ())   {   this.sshSession.disconnect ();   如果(log.isInfoEnabled ())   {   log.info (“sshSession已关闭”);   }   }   }   }/* *   *批量下载文件   * @param remotPath:远程下载目录(以路径符号结束,可以为相对路径如://sftp/jiesuan_2/2014/评估)   * @param localPath:本地保存目录(以路径符号结束,D: \ Duansha \ sftp \)   * @param fileFormat:下载文件格式(以特定字符开的头,为空不做检验)   * @param fileEndFormat:下载文件格式(文件格式)   * @param德尔:下载后是否删除sftp文件   * @return   */公共List

JAVA SFTP文件上,传下载及批量下载实例