我使用保存在磁盘上的文件使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;
}
答案 0 :(得分:1)
基于由PaŭloEbermann维护的 JSch 0.1.44 (非官方)Javadoc发现here,ChannelSftp
有几个重载的put(...)
方法。因此,您可以提供InputStream
(或任何子类),而不仅仅是FileInputStream
引用。例如,put(InputStream src, String dst)
会将文件从输入流src
上传到dst
,这是远程目标文件名,相对于当前远程目录
您还可以提供要传输的文件的String
路径。例如,带有参数的put(String src, String dst)
方法:
src
- 本地源文件名,绝对或相对于当前本地目录。dst
- 远程目标文件名,绝对或相对于当前远程目录。