参考文章:http://blog.csdn.net/smallerpig/article/details/50976191

SFTP文件的下载与FTP文件的下载差别较大,需要下载jsch-0.1.54jar包

package com.cd.util;

import com.jcraft.jsch.JSchException;  

public class SftpDownloadTestScript {  

    public static void main (String[] args)throws JSchException {  

        String ftpHost = "192.168.188.155";
String ftpUserName = "exftp";
String ftpPassword = "sFtP06222013";
int ftpPort = 22;
String ftpPath = ".";
String localPath = "D:/SFTP/uploadFiles/demo";
String fileName = "aa.jpg";
FtpUtil.downloadSftpFile(ftpHost, ftpUserName, ftpPassword, ftpPort, ftpPath, localPath, fileName);
}
}
package com.cd.util;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.SocketException;
import java.util.Properties; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session; public class FtpUtil { private final static Log logger = LogFactory.getLog(FtpUtil.class); /*
* 从SFTP服务器下载文件
*
* @param ftpHost SFTP IP地址
*
* @param ftpUserName SFTP 用户名
*
* @param ftpPassword SFTP用户名密码
*
* @param ftpPort SFTP端口
*
* @param ftpPath SFTP服务器中文件所在路径 格式: ftptest/aa
*
* @param localPath 下载到本地的位置 格式:H:/download
*
* @param fileName 文件名称
*/
public static void downloadSftpFile(String ftpHost, String ftpUserName,
String ftpPassword, int ftpPort, String ftpPath, String localPath,
String fileName) throws JSchException {
Session session = null;
Channel channel = null; JSch jsch = new JSch();
System.out.println(1);
session = jsch.getSession(ftpUserName, ftpHost, ftpPort);
System.out.println(2);
session.setPassword(ftpPassword);
System.out.println(3);
session.setTimeout(100000);
System.out.println(4);
Properties config = new Properties();
System.out.println(5);
config.put("StrictHostKeyChecking", "no");
System.out.println(6);
session.setConfig(config);
System.out.println(7);
session.connect();
System.out.println(8); channel = session.openChannel("sftp");
System.out.println(9);
channel.connect();
ChannelSftp chSftp = (ChannelSftp) channel;
System.out.println(10); String ftpFilePath = ftpPath + "/" + fileName;
String localFilePath = localPath + File.separatorChar + fileName;
System.out.println(11);
try {
System.out.println("ftpFilePath="+ftpFilePath);
System.out.println("localFilePath="+localFilePath);
System.out.println("localPath="+localPath);
chSftp.get(ftpFilePath, localPath);
System.out.println(13);
} catch (Exception e) {
e.printStackTrace();
logger.info("download error.");
} finally {
chSftp.quit();
channel.disconnect();
session.disconnect();
} } }

下面是SFTP根目录:

JAVA代码时间SFTP文件的下载的更多相关文章

  1. Android中用Java代码实现zip文件解压缩

    如果需要下载的文件有很多是中文名的,解压时有中文名的文件出现乱码,试了很多方法不能解决问题.据说有一个Java插件包,用这个插件包可以解决中文名乱码的问题,但不知解压的文件是否要用它提供的类压缩后的文 ...

  2. Java ftp 上传文件和下载文件

    今天同事问我一个ftp 上传文件和下载文件功能应该怎么做,当时有点懵逼,毕竟我也是第一次,然后装了个逼,在网上找了一段代码发给同事,叫他调试一下.结果悲剧了,运行不通过.(装逼失败) 我找的文章链接: ...

  3. servlet设置缓存时间以及文件的下载

    缓存时间的设置: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletE ...

  4. Java 代码完成删除文件、文件夹操作

    import java.io.File;/** * 删除文件和目录 * */public class DeleteFileUtil {    /**     * 删除文件,可以是文件或文件夹     ...

  5. java代码将excel文件中的内容列表转换成JS文件输出

    思路分析 我们想要把excel文件中的内容转为其他形式的文件输出,肯定需要分两步走: 1.把excel文件中的内容读出来: 2.将内容写到新的文件中. 举例 一张excel表中有一个表格: 我们需要将 ...

  6. 使用PHP自带zlib函数 几行代码实现PHP文件打包下载zip

    <?php //获取文件列表 function list_dir($dir){ $result = array(); if (is_dir($dir)){ $file_dir = scandir ...

  7. JAVA中实现根据文件路径下载文件

    import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; ...

  8. 用java代码遍历excel文件并回显

    今天需要完成282个指标,分析后发现好多都是可复用的字段和方法,生成的dao类也是很多重复的代码,所以写下了简单的自动化遍历excel的test方法, excel业务逻辑如下,用了 HSSFSheet ...

  9. Java代码操作properties文件(读取,新增/修改,删除)

    项目中需要用到操作properties文件中的数据,记录一下 package com.bonc.savepic.save; import java.io.FileNotFoundException; ...

随机推荐

  1. localStorage 设置本地缓存

    var timestamp = parseInt(Date.parse(new Date()));var btn = document.getElementById("close" ...

  2. js如何比较两个日期之间相差数(天、时、分、秒)

    首先,我们模拟一个例子 引入js文件 <script type="text/javascript" src="jquery.min.js">< ...

  3. ASP.Net MVC(2) 之目录结构

    认识MVC从目录结构 App_Data 文件夹 用于存储应用程序数据. App_Start 启动文件的配置信息,包括很重要的RouteConfig路由注册信息 Content文件 Content 文件 ...

  4. learning ddr seft-refresh mode summary

  5. HashMap实现原理分析--面试详谈

    1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端. 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大.但数组的二分查找时间复杂度小,为O(1 ...

  6. 深入理解java虚拟机---虚拟机工具jmap(十六)

    原文: https://www.cnblogs.com/myna/p/7573843.html jmap JVM Memory Map命令用于生成heap dump文件,如果不使用这个命令,还可以使用 ...

  7. 解决无法创建 JPA 工程的问题

    原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7703803.html ------------------------------------ ...

  8. UBUNTU 测试跑分

    time echo "scale=5000; 4*a(1)" | bc -l -q3.14159265358979323846264338327950288419716939937 ...

  9. dubbo-admin 无法支持JDK1.8

    dubbo-admin 无法支持JDK1.8怎么处理? 1.从git上下载最新源码 https://github.com/alibaba/dubbo 2.编译war包,或直接容器启动

  10. angular2架构详解

    参考  http://codin.im/2016/09/18/angular2-architecture-intro/ http://www.tuicool.com/articles/EvEZjmZ ...