Java中操作SFTP服务器上的文件下载上传

本文介绍如何在Java中利用JSch库进行SFTP操作,包括文件的下载和上传。参考了StackOverflow上的相关问题解答,探讨了如何检查远程文件是否存在以及如何传输文件夹及其子目录。
摘要由CSDN通过智能技术生成

依赖用的是 jsch 官网是 http://www.jcraft.com/jsch/

import com.jcraft.jsch.*;

import java.io.File;
import java.util.Vector;

/**
 * Created by tomoya at 2019-08-14
 */
public class SFTPUtil {

  private static ChannelSftp channel;
  private static Session session;

  private static SFTPUtil sftpUtil;

  private SFTPUtil() {
  }

  /**
   * 初始化sftp连接,只有调完这个方法,才能用下面的方法
   *
   * @return
   */
  public static synchronized SFTPUtil instance() {
    if (sftpUtil == null) sftpUtil = new SFTPUtil();
    return sftpUtil;
  }

  public static ChannelSftp initChannel(String host, String username, String password, String knowHostsFilename) {
    try {
      JSch jsch = new JSch();

//      String knowHostsFilename = "/Users/hh/.ssh/known_hosts";
      jsch.setKnownHosts(knowHostsFilename);

      session = jsch.getSession(username, host);
      session.setPassword(password);

      session.connect();

      Channel _channel = session.openChannel("sftp");
      _channel.connect();

      channel = (ChannelSftp) _channel;

      return channel;
    } catch (JSchException e) {
      e.printStackTrace();
    }
    return null;
  }

  /**
   * 下载文件
   *
   * @param remoteFile sftp服务器上文件路径
   * @param localFile  下载到本地的文件路径
   */
  public static void downloadFile(String remoteFi
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值