在 Groovy 中将字符串转换为 InputStream
Posted
技术标签:
【中文标题】在 Groovy 中将字符串转换为 InputStream【英文标题】:Convert String to InputStream in Groovy 【发布时间】:2018-11-03 15:10:19 【问题描述】:给定一个字符串:
String xml = "<test/>";
如何在 Groovy 中将其转换为 InputStream
?
目前我使用:
IOUtils.toInputStream(xml, StandardCharsets.UTF_8)
它可以工作,但我正在寻找一些在 Groovy 中更短且无依赖的方法。
我当然知道 answer 用于 Java,但它涉及到丑陋的 ByteArrayInputStream
创建。我正在寻找解决该问题的 GDK 方法。
【问题讨论】:
How do I convert a String to an InputStream in Java?的可能重复IOUtils.toInputStream()
完全是 new ByteArrayInputStream()
的东西。 GDK 没有添加任何类似于InputStream.getText()
的将String 转换为InputStream 的方法。实际上使用ByteArrayInputStream
是最简单直接的方法。
【参考方案1】:
与 Groovy 没有太大关系,纯 java:
InputStream stream = new ByteArrayInputStream( xml.getBytes( 'UTF-8' ) )
【讨论】:
Groovy 有text
方法可以将InputStream
转换为String
,所以我正在寻找类似的速记,而没有ByteArrayInputStream
。【参考方案2】:
如果你在类路径上有org.apache.tools.ant.types.resources.StringResource
,它就变成了:
new StringResource(xml).inputStream
它包含在 cglib 中,所以如果你做模拟,也许你可以在测试中使用上面的简写。
【讨论】:
以上是关于在 Groovy 中将字符串转换为 InputStream的主要内容,如果未能解决你的问题,请参考以下文章