给定一个字符串:

String exampleString = "example";

我怎么把它转换成一个输入流?


当前回答

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

使用ByteArrayInputStream

例子:-

String str = "String contents";
InputStream is = new ByteArrayInputStream(str.getBytes(StandardCharsets.UTF_8));

使用Apache Commons IO

例子:-

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

其他回答

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

使用ByteArrayInputStream

例子:-

String str = "String contents";
InputStream is = new ByteArrayInputStream(str.getBytes(StandardCharsets.UTF_8));

使用Apache Commons IO

例子:-

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

您可以使用StringReader,并使用另一篇stackoverflow文章中的解决方案将阅读器转换为输入流。

是这样的:

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

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

对于Java小于7的版本,替换StandardCharsets。UTF_8和“UTF-8”。

我发现使用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而不是静态方法创建的,这是有原因的。