JSch SFTP 文件 upload/download - 为什么要使用 return 流的方法?

JSch SFTP file upload/download - why use the methods that return a stream?

ChannelSftp class 的 get()put() 方法不返回任何内容,或返回 InputStream/OutputStream

使用方法返回流的用例是什么,reading/writing 逐字节文件,与使用简单的 get()put() 方法指定源和目标路径,让程序为您做一切?

我的猜测是,如果您正在下载和播放 video/audio 文件会是一种情况,但是如果您只是将文件 to/from 从一台服务器移动到另一台服务器呢?那么使用流有什么意义吗?

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

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

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

流也是有用的抽象。


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