使用JSCH通过SFTP下载文件(android)

时间:2015-07-11 00:49:49

标签: java android sftp jsch downloading

我正在尝试制作一个使用SFTP从服务器下载文件的应用。每当我运行调试器时,一切似乎没有错误。我的日志说它已经下载了指定的文件。但是,我似乎无法找到应该在我的设备中的任何位置下载的文件。有什么帮助吗?


  Duration in seconds = dur / ts

1 个答案:

答案 0 :(得分:0)

ChannelSftp sftpChannel = (ChannelSftp) channel;
sftpChannel.get(fileName);
Log.d(fileName, " has been downloaded");

single-argument version of ChannelSftp.get()不会将远程文件写入本地文件。它返回一个InputStream。您应该从InputStream中读取远程文件的内容,例如:

try (FileOutputStream out = new FileOutputStream("/some/file")) {
    try (InputStream in = sftpChannel.get(fileName)) {
        // read from in, write to out
        byte[] buffer = new byte[1024];
        int len;
        while ((len = in.read(buffer)) != -1) {
            out.write(buffer, 0, len);
        }
    }
}

或者,other versions of the get() method会将远程内容写入本地文件。