当前位置: 首页 > 知识库问答 >
问题:

如何将String转换为S3ObjectInputStream

梁福
2023-03-14

在其中一个API中,使用Apache IOUtils,使用以下步骤将S3Object转换为字符串:

S3ObjectInputStream inputStream = s3Object.getObjectContent();
String streamString = IOUtils.toString(inputStream);

在另一个API中,当我必须将字符串转换回S3ObjectInputStream时,我尝试了以下步骤,但似乎不起作用:

方法1:

String streamString = IOUtils.toString(inputStream); // --> from the 1st API

S3ObjectInputStream s3ObjectInputStream = new S3ObjectInputStream
        (new ByteArrayInputStream(streamString.getBytes()), null); --> Returning an incorrect/null inputstream

方法2:

String streamString = IOUtils.toString(inputStream); // --> from the 1st API

InputStream sampleStream = IOUtils.toInputStream(streamString, StandardCharsets.UTF_8);

有没有其他方法可以在不丢失数据的情况下正确转换它?

共有1个答案

西门振
2023-03-14

我试过了,效果很好。您的问题可能存在于其他地方(可能是您的输入流)。

这是工作代码(包括您的代码)。

@Test
  public void testS3ObjectInputStream() throws IOException {

    String originalString = "Hello World";
    InputStream inputStream =
        new ByteArrayInputStream(originalString.getBytes(StandardCharsets.UTF_8));
   
     // your code
    String streamString = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
    S3ObjectInputStream s3ObjectInputStream =
        new S3ObjectInputStream(
            new ByteArrayInputStream(streamString.getBytes(StandardCharsets.UTF_8)), null);

    assertNotNull(s3ObjectInputStream); //PASSES!

    String recoveredString = IOUtils.toString(s3ObjectInputStream, StandardCharsets.UTF_8);

    assertEquals(originalString, recoveredString); //PASSES!
  }
 类似资料:
  • 问题内容: 我正在使用A 将Json从Web转换为字符串。 这可能很简单,但是我似乎无法将此字符串转换为。 我怎样才能做到这一点? 问题答案: 请参阅文档和示例。

  • 问题内容: 如何在Java中将org.jdom.Document转换为字符串? 问题答案:

  • 问题内容: 如何将Java转换为? 问题答案: 通过调用其方法。 返回一个包含此序列中字符的字符串,该字符串的顺序与此序列相同。字符串的长度将是此序列的长度。

  • 问题内容: 还有其他方法可以将writer转换为字符串吗? 问题答案: 如果我想用它来制作一个String,我会聘请专门的作家。

  • 我有一个实体 我想根据货币计算每个部门的金额,并将结果写在行中。例子: 结果:“莫斯科200美元,巴黎100美元,莫斯科200卢布” 对于it: 我收到一个结果: 但我不知道如何转换地图

  • 问题内容: 我需要将a转换为an ,但我不知道如何 基本上我想变成一个。 问题答案: 您可以执行以下操作: