java通过jsch使用sftp连接linux处理文件
1、Maven依赖
<!--Java连接Linux服务器依赖-->
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
2、相关实现
private static final String RECORD_DIR="/dings";
private static final String SAVE_DIR="D:/backGroundVideos";
public static void main(String[] args){
// SFTP服务器地址
String host = "xxx.xxx.xxx.xxx";
// SFTP服务器端口号
int port = Integer.valueOf("22");
// SFTP登录用户名
String username = "xxx";
// SFTP登录密码
String password = "xxxxx";
JSch jsch = new JSch();
Session session = null;
ChannelSftp channelSftp = null;
try {
session = jsch.getSession(username, host, port);
session.setPassword(password);
// 设置StrictHostKeyChecking为no,避免第一次连接时会提示确认主机指纹信息
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
channelSftp = (ChannelSftp) session.openChannel("sftp");
channelSftp.connect();
// 切换到要操作的文件夹路径
channelSftp.cd(RECORD_DIR);
Vector<ChannelSftp.LsEntry> fileList = channelSftp.ls("./*");
for (int i=0; i < fileList.size(); i++) {
ChannelSftp.LsEntry entry = fileList.elementAt(i);
if (!entry.getAttrs().isDir()) {
InputStream inputStream = channelSftp.get(entry.getFilename());
File file = new File(SAVE_DIR + "/local_directory/");
if (!file.exists()){
file.mkdirs();
}
String filePath = file +File.separator+ entry.getFilename();
OutputStream outputStream = new FileOutputStream(filePath);
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
inputStream.close();
outputStream.flush();
outputStream.close();
}
//获取完成删除文件
//channelSftp.rm(entry.getFilename());
}
} catch (JSchException | SftpException | IOException e) {
e.printStackTrace();
} finally {
if (channelSftp != null && channelSftp.isConnected()) {
channelSftp.disconnect();
}
if (session != null && session.isConnected()) {
session.disconnect();
}
}
}
java通过jsch使用sftp连接linux处理文件的更多相关文章
- java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息
1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...
- java通过sftp对linux服务器文件夹进行操作
本文主要讲sftp对linux服务器的文件和文件夹进行操作,windows server 服务器不支持. package com.lx.ftp; import java.io.File; import ...
- SecureFX连接Linux后文件夹中文乱码问题解决(转)
在使用SecureFX 连接Linux 时,发现文件夹显示乱码,一直尝试各种配置,现将方法整理一下!供大家参考! 首先在选项中设置字符编码为UTF-8 然后在全局选项中找到Securefx的配置文件 ...
- SFTP 连接服务器下载文件方法采坑说明
本篇博客主要记录请求SFTP服务器的一些方法采坑情况. 采坑的方法说明: 1. cd():这个方法用于进入某个目录下. 默认情况,当连接SFTP服务器成功后直接进入用户目录,比如我连接自己本机SFTP ...
- 1.关于UltraEdit中的FTP和Tenent配置,UE远程连接Linux进行文件操作
1 安装UltraEdit 2 配置FTP相关的配置 文件àFTP/Tenet(T)à watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3 ...
- linux linux 互传文件 win 不通过 ftp sftp 往linux 传文件(文件夹)
linux 传入 传出文件 swp port 22 怎样通过swp通过docker 容器向外传文件 通过scp Linux互传文件,需要知道文件源 file source 所在系统的ip wuse ...
- securefx连接linux后文件夹中文乱码问题解决
首先在选项中设置字符编码为UTF-8 然后在全局选项中找到Securefx的配置文件 进入到该目录中,选择“Sessions”: 在“Sessions”中找到链接地址的ini文件,并用文本编辑器打开: ...
- 通过sftp操作Linux服务器上的文件(java)
本文为实现对linux服务器文件的操作.windows服务器不支持. 引入jar包:jsch-0.1.42.jar package com.csvreader.sftp; import java.io ...
- java之Jsch实现Linux的文件上传与下载
一.JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功 ...
- java使用ssh连接Linux并执行命令
方式1:通过设置账号密码和链接地址 maven pom.xml配置: <dependency> <groupId>com.jcraft</groupId ...
随机推荐
- springboot 实现拦截的 3 种方式介绍及异步执行的思考
springboot 拦截方式 实际项目中,我们经常需要输出请求参数,响应结果,方法耗时,统一的权限校验等. 本文首先为大家介绍 HTTP 请求中三种常见的拦截实现,并且比较一下其中的差异. (1)基 ...
- Java Socket编程系列(四)开发支持多客户端访问的Server
例子来自Java官方教程,稍作调整. 上一篇介绍了单客户端访问的Server实现,这一篇实现的是多个客户端请求服务端,根据服务端提示进行一系列操作. 协议类(和系列三一样没变): package co ...
- 【libGDX】使用Mesh绘制三角形
1 Mesh 和 ShaderProgram 简介 1.1 创建 Mesh 1)Mesh 的构造方法 public Mesh(boolean isStatic, int maxVertices, ...
- win32 - 在进程之间获取事件通知(CreateEvent)
只需要记住使用OpenEvent来同步Event对象. Project A: #define _CRT_SECURE_NO_WARNINGS #include <Windows.h> #i ...
- mongodb(2022)
了解 文档数据库MongoDB用于记录文档结构的数据,如JSON.XML结构的数据.一条文档就是一条记录(含数据和数据结构),一条记录里可以包含若干个键值对.键值对由键和值两部分组成,键又叫做字段.键 ...
- Gitlab 16.9.0 用Access Token注册Gitlab Runner
升级到当前最新版Gitlab之后 在"管理中心"的"CI/CD"--"Runners"下,提示以前的那种注册令牌的方式已经过时了. 点击右上 ...
- 答应我,在vue中不要滥用watch好吗?
前言 上周五晚上8点,开开心心的等着产品验收完毕后就可以顺利上线.结果产品突然找到我说要加需求,并且维护这一块业务的同事已经下班走了,所以只有我来做.虽然内心一万头草泥马在狂奔,但是嘴里还是一口答应没 ...
- vscodeC++生成配置文件
参考 https://www.cnblogs.com/harrypotterisdead/p/14207866.html 和 https://www.cnblogs.com/heyiping/p/14 ...
- MySQL8.0与5.7版本的下载、安装与配置
•软件下载 下载地址 [官网],点开该网址,点击 DOWNLOAD 来到如下页面: MySQL的版本介绍 MySQL Community Server 社区版本:开源免费,自由下载,但不提供官方技 ...
- css class 操作列 按钮 之间加 竖线 | class="your-handleBtn" :last-child::after
思路:botton 加一个class 每个右边加个竖线,最后一个不加. 用起来很方便 <template slot="handle" slot-scope="{ r ...