使用JSch进行Java文件传输

时间:2016-01-27 00:13:15

标签: java jsch

我使用保存在磁盘上的文件使Java SFTP传输应用程序正常工作。我喜欢改变逻辑以使用字符串或流。我能找到的所有信息都只需要FileInputStream。任何帮助都会很棒。

ChannelSftp c = createSession();
try {
    File f = new File(workingFile);
    c.put(new FileInputStream(f), f.getName());
} catch (Exception e) {
    System.err.println("Storing remote file failed. "+e.toString());
    throw e;
}

1 个答案:

答案 0 :(得分:1)

基于由PaŭloEbermann维护的 JSch 0.1.44 (非官方)Javadoc发现hereChannelSftp有几个重载的put(...)方法。因此,您可以提供InputStream(或任何子类),而不仅仅是FileInputStream引用。例如,put(InputStream src, String dst)会将文件从输入流src上传到dst,这是远程目标文件名,相对于当前远程目录

您还可以提供要传输的文件的String路径。例如,带有参数的put(String src, String dst)方法:

  • src - 本地源文件名,绝对或相对于当前本地目录
  • dst - 远程目标文件名,绝对或相对于当前远程目录