951

给定一个字符串:

String exampleString = "example";

如何将其转换为InputStream?

4

5 回答 5

1524

像这样:

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

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

对于低于 7 的 Java 版本,替换StandardCharsets.UTF_8"UTF-8".

于 2009-04-23T15:12:04.023 回答
285

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

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

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

于 2009-04-23T16:04:16.197 回答
41

您可以使用StringReader并使用其他 stackoverflow 帖子中的解决方案将阅读器转换为输入流。

于 2009-04-23T15:24:42.780 回答
6

在 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);
于 2021-01-16T02:31:41.327 回答
0

你可以试试仙人掌

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

出于某种原因,该对象是使用new而不是静态方法创建的。

于 2020-07-01T01:06:24.307 回答