`
Supanccy2013
  • 浏览: 223913 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java 之 jsch 实现sftp下载,上传

    博客分类:
  • SSH
阅读更多
package com.supan.sftp;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;
import java.util.Vector;
import junit.framework.TestCase;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpATTRS;
import com.jcraft.jsch.SftpException;
import com.jcraft.jsch.ChannelSftp.LsEntry;
public class SftpTest extends TestCase {
    public ChannelSftp connect(String host, int port, String username, String password) {  
        ChannelSftp sftp = null;  
        try {  
            JSch jsch = new JSch();  
            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) {  
            e.printStackTrace();  
        }  
        return sftp;  
    }  
    /** 
     * 下載文件 * @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);  
            FileOutputStream fileOutputStream =new FileOutputStream(file);  
            sftp.get(downloadFile, fileOutputStream );  
            fileOutputStream.close();  
            fileOutputStream=null;  
            file =null;  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }
    /** 
     * 上傳文件 * @param directory上傳的目錄 * @param uploadFile要上傳的文件 * @param sftp 
     */  
    public void upload(String directory, String uploadFile, ChannelSftp sftp) {  
        try {  
            sftp.cd(directory);  
            File file = new File(uploadFile); 
            FileInputStream fileInputStream = new FileInputStream(file);
            sftp.put(fileInputStream, file.getName());  
            fileInputStream.close();  
            fileInputStream=null;  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
    public void testSftp()
    {
    	ChannelSftp channelSftp = connect("192.168.159.128",22,"root","supanccy");
    	download("ssh-3.2.9.1","FAQ","c://FAQ",channelSftp);
    }
    public void testAllPfiles()
    {
    	ChannelSftp channelSftp = connect("192.168.159.128",22,"root","supanccy");
//    	channelSftp.cd("ssh-3.2.9.1");
    	try {
		 Vector<LsEntry> filelist = channelSftp.ls("ssh-3.2.9.1");
		 for(LsEntry entry : filelist)
		 {
			 System.out.println(entry.getFilename());
			 SftpATTRS attrs = entry.getAttrs();
			 //获取读取权限
			 System.out.println(attrs.getPermissionsString());
			 //获取时间戳1
			 System.out.println(attrs.getMtimeString());
			 //获取事件戳
			 System.out.println(attrs.getAtimeString());
			 System.out.println("**************");
		 }
		} catch (SftpException e) {
			e.printStackTrace();
		}
    }
}
分享到:
评论

相关推荐

    详解Java使用Jsch与sftp服务器实现ssh免密登录

    Jsch(Java Secure Channel)是一个纯Java语言编写的库,它能够实现SSH(Secure Shell)功能。SSH是一种安全协议,它主要用于在不同的系统或服务器间建立安全的连接,并在传输数据的过程中对数据进行加密。在Java中...

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

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

    jsch实现sftp文件上传、下载 ,jsch jar

    JSCH(Java Secure Channel)是一个用Java实现的SSH2库,能够支持SFTP功能,包括文件的上传和下载。本篇文章将详细讲解如何利用JSCH库实现在Java程序中进行SFTP文件的上传与下载。 首先,我们需要在项目中引入JSCH...

    java使用JSCH实现SFTP文件管理

    Java使用JSCH库实现SFTP文件管理是一种常见的远程文件传输方式,特别适用于需要与服务器进行交互,例如上传、下载文件的场景。JSCH(Java Secure Channel)是一个纯Java实现的SSH2库,允许用户通过SSH协议连接到远程...

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

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

    jsch-0.1.53 使用sftp协议上传下载文件名中文乱码解决办法

    jsch-0.1.53 不支持修改编码格式,sftp.setFilenameEncoding("GBK");这样修改是不起作用的,所以必须修改源码。此处是修改源码后重新导出的jar包。

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

    本文将详细讲解如何使用开源库JSch来实现在Java中进行SFTP的上传、下载以及删除文件的方法。 JSch是一个纯Java实现的SSH2库,它提供了对SFTP的支持,允许我们在Java应用中安全地执行文件传输。首先,我们需要添加...

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

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

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

    JAVA SFTP文件上传、下载及批量下载实例 ...本篇文章主要介绍了JAVA SFTP文件上传、下载及批量下载的实例,包括JSch库的使用、SFTP的基本概念、代码实现等方面的内容。希望本篇文章能够为您提供一定的参考价值。

    java操作sftp的工具类(JSch)

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

    sftp上传下载 java

    提供的压缩包文件“sftp上传下载”可能包含了实现这些功能的示例代码或更完整的解决方案,可以帮助开发者快速集成SFTP功能到他们的Java项目中。 总之,Java通过JSch库提供了强大的SFTP支持,使得在安全的环境中进行...

    java实现sftp文件夹上传

    本篇文章将深入探讨如何使用Java Swing实现SFTP文件夹上传的功能,并为后续的多目标地址上传做准备。 首先,我们需要导入必要的库。在Java中,我们可以使用JSch库来实现SFTP功能。JSch是一个纯Java实现的SSH2库,它...

    java实现sftp上传下载文件

    本文将详细探讨如何使用Java实现SFTP的文件上传和下载功能,以及如何利用jcraft库来完成这一任务。 首先,jcraft是一个日本开发者团队创建的开源项目,提供了Java实现的SSH2库,其中包括对SFTP的支持。在本示例中,...

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

    在Java中,我们通常会使用第三方库如JSch来实现SFTP功能。 JSch(Java Secure Channel)是一个开源Java库,它允许开发者执行SSH2协议,包括SFTP。通过JSch,我们可以实现连接到远程服务器,创建、上传、下载、删除...

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

    本文将详细探讨如何使用JSch库在Java中实现SFTP文件的上传和下载。 首先,我们需要了解JSch的基本用法。在项目中引入JSch库后,我们可以通过创建`JSch`实例来初始化SSH连接。然后,我们需要获取会话(Session)并...

    Java sftp上传文件夹demo

    在本示例中,我们将深入探讨如何使用JSch库来实现通过SFTP上传整个文件夹的功能。 首先,我们需要在项目中添加JSch库。如果你使用Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    java 开发sftp下载上传

    本篇文章将深入探讨如何使用Java进行SFTP的文件上传与下载操作。 首先,为了在Java中实现SFTP,我们需要一个支持SFTP的库,例如JSch(Java Secure Channel)。JSch是一个开源的Java库,它实现了SSH2协议,包括SFTP...

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

    4. **SFTP支持**:JSch通过Session通道创建SFTP(Subsystem)通道,从而实现安全的文件操作,如上传、下载、列出目录内容、重命名和删除文件等。 5. **SCP支持**:除了SFTP,JSch还支持SCP(Secure Copy),另一种...

Global site tag (gtag.js) - Google Analytics