【问题标题】:How to convert FileInputStream to S3ObjectInputStream如何将 FileInputStream 转换为 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;

【问题讨论】:

    标签: amazon-s3 inputstream fileinputstream


    【解决方案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..
        猜你喜欢
        • 2016-12-31
        • 2011-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-09
        • 2015-07-20
        • 1970-01-01
        相关资源
        最近更新 更多