如何将inputstream转换为InputStreamsource或Datasource以在Spring JavaMail中附加

我正在从Jsch channelSFTP获取输入流,如下所示.
ChannelSftp channelSftp = (ChannelSftp)channel;
   InputStream input=channelsftp.get(unixPath);//unixPath is path to my file which is on SFTP server

我必须在Spring javaMail附件中的unixPath中附加该文件.但是当我看到Spring JavaMail addAttachment()方法的API时,它只需要InputStreamSource或Datasource.
我的问题是我无法从inputStream获取InputStreamSource或Datasource,我从SFTP channel获取.如何从上面的输入流中获取InputStreamSource或Datasource?提前致谢.

解决方法

从文档中,InputStreamSource是一个界面.它的一个实现是 InputStreamResource,它有一个接收InputStream的构造函数. Here is the JavaDoc for it.

你应该可以这样设置你的电话:

addAttachment("Not porn",new InputStreamResource(inputStream));

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...