如何使用JSCH将大文件从本地传输到远程(Windows服务器)?

时间:2020-03-12 10:22:35

标签: java jsch

我需要将一个大文件(即> = 1gb)从本地传输到远程。

为此,我使用了JSCH库,并尝试了两种方法/方法。

第一种方法:

sftpChannel.put(new FileInputStream("file path"), "remotePath");

第二种方法(尝试分块阅读):

bufferInput = new BufferedInputStream(new FileInputStream("file path"));
byte data[] = new byte[4096];
byteOut = new ByteArrayOutputStream();
int count;
while ((count = bufferInput.read(data, 0, 4096)) != -1) {
    byteOut.write(data, 0, count);
    }
bufferInput.close();
InputStream is = new ByteArrayInputStream(byteOut.toByteArray());
byteOut.flush();
byteOut.close();
sftpChannel.put(is, "remotePath");              
is.close();

对于大型文件,这两种方法均失败,但是将文件传输到远程服务器时,文件已损坏,这没有错误。

对于较小的文件,将按预期执行相同的代码。

还有其他解决方法吗?或代码中有错误吗?

0 个答案:

没有答案