在Groovy中将字符串转换为InputStream

6

给定一个字符串:

String xml = "<test/>";

如何在Groovy中将其转换为InputStream

目前我使用以下代码:

IOUtils.toInputStream(xml, StandardCharsets.UTF_8)

这段代码可以工作,但我希望在Groovy中找到一种更短、无依赖的方法。

我当然知道Java的答案,但它需要丑陋的创建ByteArrayInputStream。我正在寻找用GDK解决该问题的方法。


1
可能是重复的问题:如何在Java中将字符串转换为InputStream? - Szymon Stepniak
2
IOUtils.toInputStream() 正好做 new ByteArrayInputStream() 的事情。 GDK 没有添加任何类似于 InputStream.getText() 的方法,将字符串转换为输入流。实际上,使用 ByteArrayInputStream 是最简单和最直接的方法。 - Szymon Stepniak
2个回答

15

与 Groovy 无关,纯 Java 相关:

InputStream stream = new ByteArrayInputStream( xml.getBytes( 'UTF-8' ) )

3
Groovy有text方法可以将InputStream转换为String,所以我正在寻找类似的快捷方式,而不需要使用ByteArrayInputStream转换。 - Michal Kordas

1
如果您的类路径上有org.apache.tools.ant.types.resources.StringResource,那么它只需要变成这样:
new StringResource(xml).inputStream

它包含在cglib中,因此如果您进行模拟测试,可能可以在测试中使用上述简写。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接