`
MauerSu
  • 浏览: 513579 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JAVA实现SFTP实例

    博客分类:
  • J2EE
 
阅读更多
源:http://www.cnblogs.com/chen1987lei/archive/2010/11/26/1888384.html
评:

最近写的一个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();
}
if(sftp!=null) {
if(sftp.isConnected()) {
System.out.println("sftp.quit");
sftp.quit();
}
}


if(sf.sshSession!=null) {
if(sf.sshSession.isConnected()) {
System.out.println("Session.disconnect");
sf.sshSession.disconnect();
}
}
}

private Session sshSession = null;
}
分享到:
评论

相关推荐

    JAVA实现SFTP实例.txt

    资源内容:Java实现Sftp中文件的操作,如目录或文件创建及删除,拉取文件,上传文件。可以直接拿来使用。

    JAVA实现SFTP上传,下载,删除等方法

    在Java编程中,实现Secure File Transfer Protocol (SFTP) 功能是常见的需求,尤其是在处理远程文件操作时。本文将详细讲解如何使用开源库JSch来实现在Java中进行SFTP的上传、下载以及删除文件的方法。 JSch是一个...

    JAVA网络安全实现SFTP实例MySFTP.java

    JAVA网络安全实现SFTP实例MySFTP

    JAVA SFTP文件上传、下载及批量下载实例

    在本篇文章中,我们将详细介绍JAVA SFTP文件上传、下载及批量下载的实例,包括相关的概念、API介绍、代码实现等方面的内容。 首先,我们需要了解什么是SFTP?SFTP(Secure File Transfer Protocol)是一种安全的...

    java实现sftp客户端上传文件以及文件夹的功能

    Java实现SFTP(Secure File Transfer Protocol)客户端上传文件和文件夹是一项常见的任务,尤其是在系统集成或者数据迁移场景中。下面将详细介绍如何通过Java实现这一功能,主要涉及的技术点包括SFTP协议、JSch库的...

    java操作sftp的工具类(JSch)

    JSch是一个纯Java实现的SSH2库,允许开发人员连接到支持SFTP的服务器,进行文件的上传、下载以及执行其他相关操作。本文将详细介绍如何使用JSch进行SFTP操作,并提供一个简单的`SftpUtil`工具类示例。 首先,我们...

    JSch - Java实现的SFTP(文件上传详解篇)

    JSch - Java 实现的 SFTP(文件上传详解篇) JSch 是 Java Secure Channel 的缩写,JSch 是一个 SSH2 的纯 Java 实现。JSch 允许您连接到一个 SSH 服务器,并且可以使用端口转发、X11 转发、文件传输等,当然您也...

    基于Java的实例源码-用Java写的SFTP代码.zip

    本实例源码是基于Java实现的SFTP客户端,用于连接到支持SFTP的服务器并执行文件操作,如上传、下载和管理文件。 Java作为一种广泛使用的编程语言,拥有丰富的库和工具支持各种网络通信,包括SFTP。在Java中实现SFTP...

    java 开发sftp下载上传

    Java作为一种广泛应用的编程语言,提供了丰富的库和工具来实现SFTP功能。本篇文章将深入探讨如何使用Java进行SFTP的文件上传与下载操作。 首先,为了在Java中实现SFTP,我们需要一个支持SFTP的库,例如JSch(Java ...

    java版SFTP实现示例(使用jsch)

    在这个示例中,我们将探讨如何使用Java通过JSch库实现SFTP功能。 JSch是一个纯Java实现的SSH2库,它允许Java应用程序连接到支持SSH协议的服务器,执行SFTP操作。`jsch-0.1.43.jar`是JSch库的JAR文件,包含所有必要...

    java sftp文件上传

    Java SFTP文件上传是通过Java编程语言实现与Secure File Transfer Protocol(SFTP)服务器进行交互,将本地文件安全地传输到远程服务器的过程。SFTP是一种基于SSH的安全文件传输协议,它提供了在不安全网络上安全...

    JAVA通过SFTP实现远程上传下载demo代码

    本文将详细介绍如何使用Java通过SFTP实现远程文件的上传和下载,并提供一个简单的示例代码。 首先,为了实现SFTP功能,我们需要一个第三方库,如JSch(Java Secure Channel)。JSch是一个纯Java实现的SSH2库,它...

    java实现导出csv文件并上传sftp

    本篇文章将深入探讨如何使用Java实现CSV文件的生成,并将其通过SFTP(Secure File Transfer Protocol)协议上传到指定服务器。 首先,我们要介绍的是用于生成CSV文件的库:univocity-parsers。这是一个高效、灵活且...

    jsch.jar及实现代码 SftpUtil.java java使用sftp实现上传下载文件

    在这个场景中,我们将详细讨论如何使用`jsch.jar`库以及提供的`SftpUtil.java`工具类来实现在Java中执行SFTP任务。 首先,`jsch.jar`是Java Secure Channel的缩写,这是一个由JCraft公司开发的开源项目。它提供了对...

    用java写的SFTP代码源码下载

    本文将深入探讨如何使用Java实现SFTP功能,以及提供的源码下载。 Java作为一种广泛使用的编程语言,拥有丰富的库来支持各种网络协议,包括SFTP。在Java中实现SFTP,我们通常会使用JSch库,这是一个开源的Java SSH2...

    java实现ftp、sftp的文件上传和下载

    这篇内容将详细介绍如何使用Java实现FTP和SFTP的文件上传与下载,并涉及相关的Apache库。 FTP是一种基于TCP的服务,主要用于在互联网上进行文件传输。Java中可以使用Apache Commons Net库来实现FTP操作。首先,需要...

    java SFTP上传所需jar和秘钥工具

    1. **JSch (Java Secure Channel)**: JSch 是一个纯Java实现的SSH2库,它允许用户执行SFTP(Secure File Transfer Protocol)操作。SFTP是基于SSH协议的文件传输协议,提供了安全的文件传输能力。JSch-0.1.54.jar是...

    java使用sftp操作样例 包含jar和代码

    在这个示例中,我们不仅会探讨SFTP的基本概念,还会讲解如何在Java中实现SFTP操作,并涉及到提供的jar和代码。 1. **SFTP简介** SFTP是一种基于TCP的协议,用于在两个系统之间安全地传输文件。它通过SSH连接提供...

    jsch-0.1.42.jar及用java实现SFTP的例子

    5. **创建SFTP通道**:使用`Session`对象的`openChannel("sftp")`方法获取一个`ChannelSftp`实例。 6. **初始化SFTP通道**:调用`ChannelSftp`的`connect()`方法。 7. **执行SFTP操作**:如`cd()`(改变目录)、`...

    java_sftp.zip

    总的来说,这个Java SFTP项目提供了在Java环境下与Linux服务器进行文件交互的实例,对于学习和理解如何在Java中实现SFTP操作具有很好的参考价值。通过深入理解和实践,你可以更好地掌握Java与远程系统间的文件传输...

Global site tag (gtag.js) - Google Analytics