JSch SFTP文件上传/下载 - 为什么要使用返回流的方法?

时间:2015-10-23 16:34:59

标签: inputstream sftp outputstream jsch

ChannelSftp类的get()put()方法版本没有返回任何内容,或者返回InputStream / OutputStream

使用返回流的方法以及逐字节读取/写入文件的用例是什么,而不是使用简单的get()put()方法来指定源和目标路径,并让程序为您做一切?

我的猜测是,如果您正在下载并播放视频/音频文件将是一种情况,但如果您只是将文件移入/从一台服务器移动到另一台服务器怎么办?那么使用流的任何一点呢?

以下是文件:
http://epaul.github.io/jsch-documentation/javadoc/com/jcraft/jsch/ChannelSftp.html#get(java.lang.String,%20java.lang.String)

1 个答案:

答案 0 :(得分:1)

与任何其他I / O接口一样,当您不操作文件而是内存数据时,带流的变体很有用。

例如,您可能已根据用户输入生成了内容,并且您希望上传它。您不需要文件中的本地副本。因此,您将内存中的数据流式传输到SFTP。

Streams也是有用的抽象。

如果要从文件上载或下载到文件,请使用带路径的重载。在这种情况下,创建文件流是不必要的开销。