如何在Java中将字符串转换为输入流?

给定一个字符串:

String exampleString = "example";

如何将其转换为InputStream

751500 次浏览

像这样:

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

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

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

您可以使用字符串读取器并使用这篇stackoverflow文章中的解决方案将阅读器转换为输入流。

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

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

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

你可以尝试仙人掌

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

该对象是用new创建的,而不是一个原因的静态方法。

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

  1. 使用字节数组输入流

示例:-

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);