JAVA实现SFTP实例(JSCH)
JAVA实现SFTP实例
最近写的一个JAVA实现SFTP的实例:
/*
* Created on 2009-9-14
* Copyright 2009 by www.xfok.net. All Rights Reserved
*
*/
package net.xfok.ftp;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
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.Session;
import com.jcraft.jsch.SftpException;
/**
* @author YangHua
* 转载请注明出处:http://www.xfok.net/2009/10/124485.html
*/
public class MySFTP {
/**
* 连接sftp服务器
* @param host 主机
* @param port 端口
* @param username 用户名
* @param password 密码
* @return
*/
public ChannelSftp connect(String host, int port, String username,
String password) {
ChannelSftp sftp = null;
try {
JSch jsch = new JSch();
jsch.getSession(username, host, port);
Session sshSession = jsch.getSession(username, host, port);
System.out.println("Session created.");
sshSession.setPassword(password);
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
sshSession.setConfig(sshConfig);
sshSession.connect();
System.out.println("Session connected.");
System.out.println("Opening Channel.");
Channel channel = sshSession.openChannel("sftp");
channel.connect();
sftp = (ChannelSftp) channel;
System.out.println("Connected to " + host + ".");
} catch (Exception e) {
}
return sftp;
}
/**
* 上传文件
* @param directory 上传的目录
* @param uploadFile 要上传的文件
* @param sftp
*/
public void upload(String directory, String uploadFile, ChannelSftp sftp) {
try {
sftp.cd(directory);
File file=new File(uploadFile);
sftp.put(new FileInputStream(file), file.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 下载文件
* @param directory 下载目录
* @param downloadFile 下载的文件
* @param saveFile 存在本地的路径
* @param sftp
*/
public void download(String directory, String downloadFile,String saveFile, ChannelSftp sftp) {
try {
sftp.cd(directory);
File file=new File(saveFile);
sftp.get(downloadFile, new FileOutputStream(file));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 删除文件
* @param directory 要删除文件所在目录
* @param deleteFile 要删除的文件
* @param sftp
*/
public void delete(String directory, String deleteFile, ChannelSftp sftp) {
try {
sftp.cd(directory);
sftp.rm(deleteFile);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 列出目录下的文件
* @param directory 要列出的目录
* @param sftp
* @return
* @throws SftpException
*/
public Vector listFiles(String directory, ChannelSftp sftp) throws SftpException{
return sftp.ls(directory);
}
public static void main(String[] args) {
MySFTP sf = new MySFTP();
String host = "192.168.0.1";
int port = 22;
String username = "root";
String password = "root";
String directory = "/home/httpd/test/";
String uploadFile = "D:\\tmp\\upload.txt";
String downloadFile = "upload.txt";
String saveFile = "D:\\tmp\\download.txt";
String deleteFile = "delete.txt";
ChannelSftp sftp=sf.connect(host, port, username, password);
sf.upload(directory, uploadFile, sftp);
sf.download(directory, downloadFile, saveFile, sftp);
sf.delete(directory, deleteFile, sftp);
try{
sftp.cd(directory);
sftp.mkdir("ss");
System.out.println("finished");
}catch(Exception e){
e.printStackTrace();
}
}
}
转载请注明出处:http://www.xfok.net/2009/10/124485.html
================
使用Jsch实现文件上传
2009-04-12 22:34:41
标签:Jsch 文件上传 Sftp [推送到技术圈]
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明。否则将追究法律责任。http://kangyunqiang.blog.51cto.com/674292/149015 |
使用Jsch可以很容易地实现sftp文件上传。具体代码如下: import java.io.File; import com.jcraft.jsch.Channel; public class SftpHelper extends Thread { private String host; private String osName; private List<String> filenames = new ArrayList<String>(); public SftpHelper(String host, String username, String password, int port) { public SftpHelper(String host, String username, String password, int port, public void addFilename(String filename) { public void setFilenames(List<String> filenames) { public void run() { /** InputStream in = null; String uploadname = filename.substring(idx == -1 ? 0 : idx + 1); sleep(5000); in = new FileInputStream(filename); byte[] b = new byte[1024]; public static void main(String[] args) { 附件中有一个Jsch包,和一个mini-sftp-server。 |
JAVA实现SFTP实例(JSCH)相关推荐
- java sftp 实例_JAVA实现SFTP的实例
用Java EE 5实现的网上书店实例 李力 (ada.li@sun.com) 2007/10/23 本教程介绍了如何使用NetBeans IDE 以及GlassFish 构建一个典型的Java ...
- java的sftp文件传输_java使用SFTP上传文件到资源服务器方法详解
java使用SFTP上传文件到资源服务器 本文实例为大家分享了java实现SFTP上传文件到资源服务器工具类,供大家参考,具体内容如下 首先得创建连接sftp服务器的公共类MySftp.java: p ...
- JAVA实现SFTP
JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到 ...
- java局部变量全局变量,实例变量的理解
java局部变量全局变量,实例变量的理解 局部变量 可以理解为写在方法中的变量. public class Variable {//类变量static String name = "小明&q ...
- 用 XStream 序列化/反序列化 XML 为 Java 对象(实例)
用 XStream 序列化/反序列化 XML 为 Java 对象(实例) Posted on 2007-06-05 19:06 Stephen Wong 阅读(1224) 评论(0) 编辑 收藏 网 ...
- java rmi 入门实例
java rmi 入门实例 (2009-06-16 16:07:55) 转载▼ 标签: java rmi 杂谈 分类: java-基础 java rmi即java远程接口调用,实现了2台虚拟机之间的 ...
- c++ java通信 protocol buffer,google protocol buffer (C++,Java序列化应用实例)
google protocol buffer (C++,Java序列化使用实例) 转载,请注明出处: http://blog.csdn.net/eclipser1987/article/details ...
- java ldap操作实例_Java Spring Security示例教程中的2种设置LDAP Active Directory身份验证的方法...
java ldap操作实例 LDAP身份验证是世界上最流行的企业应用程序身份验证机制之一,而Active Directory (Microsoft为Windows提供的LDAP实现)是另一种广泛使用的 ...
- Java Web Start实例
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. JWS让用户可以下载服务器端的Java Application到本机运行,并且没有安装.配置等繁琐的 ...
最新文章
- 了解下C# 类(Class)
- 面试题:找出出现次数超过1/2和1/3的数
- Java背景颜色怎么设成随机的_JS实现随机改变背景颜色
- [好东西]使用ngrok把本机的网站端口映射到外网
- php获取当前周得周一_PHP怎样获得最近一个周一和上周一的日期?
- php伪静态不支持中文,Discuz开启伪静态导致中文会员使用手机无法访问的解决方法...
- 74ls390设计任意进制计数器_利用数字频率合成技术设计高速任意波形发生器(上)...
- vue 使用this.reload方法刷新页面配置
- morphogenesis —— 形态发生
- cli php 增强包_Linux 上安装 PHP 扩展
- c语言蛮力法实现背包问题
- GEE批处理自动下载遥感影像
- JFlash烧录不知名的ARM芯片
- 重庆阿尔克分析2020中国经济,为什么实体经济干不过虚拟经济?
- 第八章:Java8新增特性,Lambda表达式
- 数据库迁移 软件Spoon Kettle环境搭配(本人踩过的坑)
- jmf608硬盘修复_JMF608固态硬盘主控 SSD套料 SSD电路板 SATA3 封装BGA152|TSOP48
- QEMU 网络配置一把梭
- java中的double 类型数据相加问题
- symfony框架Twig模板语言的使用
热门文章
- Swift之深入解析如何避免单元测试中的强制解析
- 167. Two Sum II - Input array is sorted 两数之和 II - 输入有序数组
- Python+OpenCV人脸识别技术详解
- 【机器视觉】 fuzzy_measure_pairing算子
- 【Linux】一步一步学Linux——dig命令(160)
- java snychronized_Java synchronized同步线程机制(三) | 学步园
- android sd大小,android用户的SD卡相同容量是否完全一样的大小
- 字符数据类型转换代码
- Windows / Ubuntu操作系统下Pixhawk原生固件PX4的编译方法
- 《Linux内核设计与实现》读书笔记(十七)- 设备与模块