如何将 FileInputStream 转换为 S3ObjectInputStream
Posted
技术标签:
【中文标题】如何将 FileInputStream 转换为 S3ObjectInputStream【英文标题】:How to convert FileInputStream to S3ObjectInputStream 【发布时间】:2015-02-11 05:31:54 【问题描述】:我想将 File InputStream 转换为 S3ObjectInputStream,我用下面的方式尝试过,但没有成功,我得到了
java.io.FileInputStream cannot be cast to com.amazonaws.services.s3.model.S3ObjectInputStream
这是我的代码
InputStream is = new FileInputStream(file);
S3ObjectInputStream sObject = (S3ObjectInputStream)is;
【问题讨论】:
【参考方案1】:这就是将 inputStream 转换为 S3Object 输入流的方法。确保 src/test/resources 文件夹中存在模拟 S3 文件
private S3ObjectInputStream getMockS3Content()
InputStream inputStream = Thread.currentThread()
.getContextClassLoader()
.getResourceAsStream("mockS3content.json");
S3ObjectInputStream s3ObjectInputStream = new S3ObjectInputStream(inputStream,null);
return s3ObjectInputStream;
【讨论】:
【参考方案2】:使用构造函数
new S3ObjectInputStream(InputStream in, ...
我使用的是 aws-java-sdk 版本 1.11.526
【讨论】:
【参考方案3】:您需要转换为InputStream
InputStream is = new FileInputStream(file);
S3ObjectInputStream sObject = (InputStream) is;
希望对你有帮助
【讨论】:
是否可以反其道而行之?我可以将 S3ObjectInputStream 转换为 FileInputStream 吗? 这给出了一个ClassCastException
。这个答案如何被接受?
不,实际上,代码甚至无法编译。您不能将 InputStream
分配给 S3ObjectInputStream
并且演员表是多余的...is
已被声明为 InputStream
..以上是关于如何将 FileInputStream 转换为 S3ObjectInputStream的主要内容,如果未能解决你的问题,请参考以下文章
将 inputStream 转换为 FileInputStream?
将 ByteArrayOutputStream 转换为 FileInputStream [重复]
java中,如何将InputStream类型的东东转成FileInputStream类型?
用FileInputStream读取数据,计算机如何实现将两个字节拼接成中文的?