我正在尝试制作一个使用SFTP从服务器下载文件的应用。每当我运行调试器时,一切似乎没有错误。我的日志说它已经下载了指定的文件。但是,我似乎无法找到应该在我的设备中的任何位置下载的文件。有什么帮助吗?
Duration in seconds = dur / ts
答案 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会将远程内容写入本地文件。