SFTP文件上传、下载
SFTP文件上传、下载
public class SftpUtil {private String downFilePath = ""; // FTP文件下载路径private String fileEncodein = ""; //文件流格式private String ftpUrl = "";private String ftpUserName = "";private String ftpPassword = "";private String ftpFilePath = ""; // FTP文件路径private String port = ""; //端口号public String download(){String fileName ="tas_tradedetail_.txt";//连接SFTP服务器ChannelSftp channelSftp = null;try{channelSftp = this.connect(ftpUrl,Integer.valueOf(port), ftpUserName, ftpPassword);if(null == channelSftp || !channelSftp.isConnected()){return "SFTP服务器连接失败,请检查发送SFTP配置参数.";}InputStream inputStream = null;File file = new File(downFilePath);channelSftp.cd(ftpFilePath);//文件下载目录try{inputStream = channelSftp.get(fileName);//以流形式读取channelSftp.get(fileName,new FileOutputStream(file));//文件下载本地}catch (Exception e){return "SFTP下载文件失败:"+fileName+"文件不存在";}BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));String tempString = null;while ((tempString = reader.readLine()) != null){String[] arr = tempString.split("\\|");//以 '|'分割字符串//读取每行数据}}catch(Exception e) {StringWriter sw = new StringWriter();PrintWriter pw = new PrintWriter(sw);e.printStackTrace(pw);return "SFTP下载文件失败";}finally {channelSftp.disconnect();}return "succ";}public String upload() throws Exception{String fileName ="skybestpay_.txt";//连接SFTP服务器ChannelSftp channelSftp = null;try{channelSftp = this.connect(ftpUrl,Integer.valueOf(port), ftpUserName, ftpPassword);if(null == channelSftp || !channelSftp.isConnected()){return "SFTP服务器连接失败,请检查发送SFTP配置参数.";}//3, 创建副本文件的文件夹if (downFilePath.endsWith("/")){downFilePath = downFilePath + "/";}File tempFilePath = new File(downFilePath);if(!tempFilePath.exists()) {if(!tempFilePath.mkdir()) {return "本地的文件夹创建失败!";}}//4, 创建副本文件File tempFile = new File(tempFilePath.getAbsolutePath(),fileName);if(tempFile.exists()) {tempFile.delete();}if(!tempFile.createNewFile()) {return "本地的文件创建失败!";}//5, 写入副本文件FileWriterWithEncoding fileWriter = new FileWriterWithEncoding(tempFile, fileEncodein);StringBuffer general = new StringBuffer();StringBuffer content = new StringBuffer();try {content.append("1").append("|");content.append("2").append("|");content.append("3").append("|");content.append("4").append("|");content.append("5").append("|");content.append("6").append("|");content.append("7");fileWriter.write(content.toString());fileWriter.write(general.toString());} catch (IOException e) {throw e;} finally {fileWriter.close();}channelSftp.cd(ftpFilePath);//文件上传路径channelSftp.put(new FileInputStream(tempFile), tempFile.getName());}catch(Exception e) {StringWriter sw = new StringWriter();PrintWriter pw = new PrintWriter(sw);e.printStackTrace(pw);return "SFTP上传文件失败";}finally {channelSftp.disconnect();}return "succ";}/*** 连接SFTP服务器* @param host 主机* @param port 端口* @param username 账户* @param password 密码* @return* @throws Exception*/public ChannelSftp connect(String host, int port, String username, String password) throws Exception{ChannelSftp sftp = null;JSch jsch = new JSch();jsch.getSession(username, host, port);Session sshSession = jsch.getSession(username, host, port);sshSession.setPassword(password);Properties sshConfig = new Properties();sshConfig.put("StrictHostKeyChecking", "no");sshSession.setConfig(sshConfig);sshSession.connect();Channel channel = sshSession.openChannel("sftp");channel.connect();sftp = (ChannelSftp) channel;return sftp;}
}
SFTP文件上传、下载相关推荐
- Python + Paramiko实现sftp文件上传下载
最近在测试服务器那块,看了下Paramiko模块,一直都是用FileZilla工具,想了想,持续集成,更新代码可以用Parmmiko完成,还是不错的 Paramiko是用python语言写的一个模块, ...
- sftp文件上传下载改名压缩解压
希望能帮到大家,有疑问联系 package com.qb.modules.organtrans.interactive.jinshang;import java.io.File; import jav ...
- centos nfs java_CentOS下安装配置NFS并通过Java进行文件上传下载
1:安装NFS (1)安装 yum install nfs-utils rpcbind (2)启动rpcbind服务 systemctl restart rpcbind.service 查看服务状态 ...
- 能过ChilkatDotNet4.dll组件,开发SFTP,上传下载功能。
/// <summary>/// SFTP文件上传下载/// </summary>public class SFtp{/// <summary>/// http:/ ...
- 树莓派3B+采用花生棒进行内网穿透,从拆箱到实现SSH远程控制与sftp简单远程文件上传下载
树莓派3B+采用花生棒进行内网穿透,使用sftp实现远程控制与简单远程文件上传下载) 准备步骤 物理环境搭建 关于基础配置的博文推荐 树莓派联网配置 基础联网 配置静态ip 花生壳内网穿透 常用远程端 ...
- java jsch下载文件,JSch使用sftp协议实现服务器文件上传下载操作
Jsch是什么? JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等.你可以将它的功能集成到你自己的 程序中.同时该项目也提供一个J2 ...
- SFTP文件上传与下载
一.引入jar包 <dependency><groupId>com.github.mwiede</groupId><artifactId>jsch< ...
- xftp实现本地与服务器的文件上传下载(windows)
背景: Jemter环境搭建,需上传下载服务器文件到aws服务器上,由于secureCRT的局限性它只支持pub格式的密钥,不支持pem格式密钥,xshell是支持pem格式的,所以尝试安装xshel ...
- JSCH实现文件上传下载
前言 最近项目中经常用的jsch来进行文件上传下载,在业务量大的时候,每次都去获取sftp连接很消耗资源,后面就想着使用连接池来解决. 简述 1)jsch是ssh2的一个纯Java实现.它允许你连接到 ...
最新文章
- 五子棋html游戏代码与算法介绍
- wsasend发送不可靠_架构师总结:kafka 如何保证数据的可靠性和一致性
- python 日志内容提取
- 如何保证代码的高质量?
- 会向业务“砍需求”的技术同学,该具备哪6点能力?
- 20171016课程随笔
- 移动开发 Jetpack Compose 组件布局
- spark读取gz文件与parquet文件
- (渝粤教育)网络教育远程教育统考计算机应用基础复习题
- 求义隆单片机c语言红外解码程序,吐槽义隆单片机,顺便送上超轻红外解码程序....
- 关于glew.h / glut.h引用
- 计算机打印机能不能取消正在,删除HP打印机驱动程序. 打印机驱动程序正在使用中,无法删除...
- 学习笔记1 - ResNet网络学习
- LeetCode-590. N-ary Tree Postorder Traversal
- 知名企业面试、笔试题
- unity3d 模拟电脑实现_基于Unity3D三维电脑组装实验系统的实现
- 各位集美兄得看过来! 利用AI给青春有你2的选手们做数据分析挖掘(二):统计并展示数据
- java成绩管理系统论文总结_毕业论文基于java的学生成绩管理系统.doc
- 未雨绸缪,聊聊旧系统升级改造那些事儿
- 74ls160 24进制异步计数器