




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
package .sftp;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.HashMap;import java.util.Map;import java.util.Properties;import java.util.Vector;import com.jcraft.jsch.Channel;import com.jcraft.jsch.ChannelSftp;import com.jcraft.jsch.JSch;import com.jcraft.jsch.JSchException;import com.jcraft.jsch.Session;import com.jcraft.jsch.SftpException;public class SFTPTool private Session session; private Channel channel; private ChannelSftp sftp;/ sftp操作类 / private InputStream in;/ 输入流 / private OutputStream out;/ 输出流 public SFTPTool(String host, int port, String username, String password) throws Exception getConnect(host, port, username, password); /* * 连接sftp服务器 * * param host 主机 * param port 端口 * param uname 用户名 * param username 密码 * return * throws Exception */public ChannelSftp getConnect(String host, int port, String username, String password) throws Exception JSch jsch = new JSch(); this.session = jsch.getSession(username, host, port); session.setPassword(password); Properties config = new Properties(); config.put(StrictHostKeyChecking, no); / 不验证 HostKey session.setConfig(config); try session.connect(); catch (Exception e) if (session.isConnected() session.disconnect(); throw new Exception(连接服务器失败,请检查主机 + host + ,端口 + port + ,用户名 + username + ,端口 + port + 是否正确,以上信息正确的情况下请检查网络连接是否正常或者请求被防火墙拒绝.); channel = session.openChannel(sftp); try channel.connect(); catch (Exception e) if (channel.isConnected() channel.disconnect(); throw new Exception(连接服务器失败,请检查主机 + host + ,端口 + port + ,用户名 + username + ,密码 + password + 是否正确,以上信息正确的情况下请检查网络连接是否正常或者请求被防火墙拒绝.); this.sftp = (ChannelSftp) channel; return sftp;/* * 断开连接 */public void disConn()if(null != this.sftp)this.sftp.disconnect();this.sftp.exit();this.sftp = null;if(null != this.channel)this.channel.disconnect();this.channel = null;if(null != this.session)this.session.disconnect();this.session = null;/* * 上传文件 * * param directory 上传的目录 * param uploadFile 要上传的文件 * param sftp */public void upload(String directory, String uploadFile) /ChannelSftp sftp = map.keySet().iterator().next();/Session session = map.get(sftp);try sftp.cd(directory);File file = new File(uploadFile);sftp.put(new FileInputStream(file), file.getName(); catch (Exception e) e.printStackTrace(); finallydisConn();/* * 下载文件 * * param directory 下载目录 * param downloadFile 下载的文件 * param saveFile 存在本地的路径 * param sftp */public void download(String directory, String downloadFile,String saveFile) /ChannelSftp sftp = map.keySet().iterator().next();try sftp.cd(directory);File file = new File(saveFile);sftp.get(downloadFile, new FileOutputStream(file); catch (Exception e) e.printStackTrace(); finallydisConn();/* * 删除文件 * * param directory 要删除文件所在目录 * param deleteFile 要删除的文件 * param sftp */public void delete(String directory, String deleteFile) /ChannelSftp sftp = map.keySet().iterator().next();try sftp.cd(directory);sftp.rm(deleteFile); catch (Exception e) e.printStackTrace(); finallydisConn();/* * 列出目录下的文件 * * param directory 要列出的目录 * param sftp * return * throws SftpException */public Vector listFiles(String directory)throws SftpException /ChannelSftp sftp = map.keySet().iterator().next();Vector vec = sftp.ls(directory);disConn();return vec;/* * 用于查询某个远程目录下的文件名称 * param directory 远程目录 * param valiStr * param map * return * throws SftpException */public Vector listFileNames(String directory, String valiStr)throws SftpException Vector ret = new Vector();/ChannelSftp sftp = map.keySet().iterator().next();System.out.println(-);for (Object obj : sftp.ls(directory) String curStr = obj.toString();curStr = curStr.substring(curStr.lastIndexOf( )+1);if(curStr.contains(valiStr)ret.add(curStr);/System.out.println(curStr);disConn();return ret;public static void main(String args) String IP = 9;String UNAME = phs;String PWD = 123456;int PORT = 22;String PATH = /u1/phs/RNMS/paramfile;SFTPTool tool = null;Vector vector = null;try tool = new SFTPTool(IP, PORT, UNAME, PWD);/Map map = tool.getConnect(IP, PORT, UNAME, PWD);vec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铁渣处理工岗位操作技能考核试卷及答案
- 塑料玩具制作工特殊工艺考核试卷及答案
- 大中国歌曲图谱课件
- 2025年3-氨基苯硼酸行业研究报告及未来行业发展趋势预测
- 物料输送及烟气净化工工艺创新考核试卷及答案
- 学习动机激发策略-洞察及研究
- 2025年智慧物流运输设备市场研究报告
- 农机服务经纪人工艺考核试卷及答案
- 2025年挂饰行业研究报告及未来行业发展趋势预测
- 印花工岗位操作技能考核试卷及答案
- 2024年长庆油田分公司招聘考试真题
- 2025-2030中国别嘌醇片行业市场发展分析及发展趋势与投资战略研究报告
- 2025年上海中考复习必背英语考纲词汇表默写(汉英互译)
- 委托投标合同协议书范本
- 车库洗车日常管理制度
- 尊师重教主题班会教案
- 医院质量与安全管理委员会制度职责及工作流程
- 旅行社安全管理制度
- 宿管面试试题及答案
- 湖北省圆创教育教研中心2025届高三三月联合测评物理试题及答案
- 车间轮岗培训总结
评论
0/150
提交评论