java.lang.ClassCastException:com.jcraft.jsch.ChannelSftp $ 2无法转换为java.io.FileInputStream

时间:2018-11-28 16:40:34

标签: java

我正在使用sftp通道作为输入流从远程服务器下载文件,并尝试转换为fileinputstream。然后我从jvm 1.8接收以下异常

java.lang.ClassCastException:com.jcraft.jsch.ChannelSftp $ 2无法转换为java.io.FileInputStream

请帮助。我被困在这里

1 个答案:

答案 0 :(得分:0)

如果不创建临时文件,则无法从输入流转换为FileInputStream。参见:Convert InputStream into FileInputStream

如果要从远程读取文件然后再写入文件:

Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp channelSftp = (ChannelSftp) channel;
try {
    InputStream inputStream = channelSftp.get(srcPath);
    File file = //...
    OutputStream outputStream = new FileOutputStream(file);
    IOUtils.copy(inputStream, outputStream);
    outputStream.close();
} finally {
    channel.disconnect();
    session.disconnect();
}

您可以在此响应之后将其删除: How to convert InputStream to virtual File