如何在Java中将String转换为InputStream?

时间:2009-04-23 15:11:24

标签: java string type-conversion inputstream

给出一个字符串:

String exampleString = "example";

如何将其转换为InputStream

5 个答案:

答案 0 :(得分:1336)

像这样:

InputStream stream = new ByteArrayInputStream(exampleString.getBytes(StandardCharsets.UTF_8));

请注意,这假设您需要一个InputStream,它是一个字节流,表示编码为 UTF-8 的原始字符串。

对于少于7的Java版本,请将StandardCharsets.UTF_8替换为"UTF-8"

答案 1 :(得分:251)

我发现使用Apache Commons IO让我的生活变得更轻松。

String source = "This is the source of my input stream";
InputStream in = org.apache.commons.io.IOUtils.toInputStream(source, "UTF-8");

您可能会发现该库还提供了许多其他快捷方式,可用于您可以在项目中使用的常用任务。

答案 2 :(得分:36)

您可以使用StringReader并使用this other stackoverflow post中的解决方案将阅读器转换为输入流。

答案 3 :(得分:4)

Java 中有两种方法可以将 String 转换为 InputStream,

  1. 使用 ByteArrayInputStream

示例:-

String str = "String contents";
InputStream is = new ByteArrayInputStream(str.getBytes(StandardCharsets.UTF_8));
  1. 使用 Apache Commons IO

示例:-

String str = "String contents"
InputStream is = IOUtils.toInputStream(str, StandardCharsets.UTF_8);

答案 4 :(得分:-1)

您可以尝试cactoos

final InputStream input = new InputStreamOf("example");

该对象是使用new创建的,而不是用于a reason的静态方法。