<强> 1。jsch官方API查看地址(附件为需要的jar) 强>
<强> 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 */公共ListJAVA SFTP文件上,传下载及批量下载实例