【问题标题】:Convert String to InputStream in Groovy在 Groovy 中将字符串转换为 InputStream
【发布时间】:2018-11-03 15:10:19
【问题描述】:

给定一个字符串:

String xml = "<test/>";

如何在 Groovy 中将其转换为 InputStream

目前我使用:

IOUtils.toInputStream(xml, StandardCharsets.UTF_8)

它可以工作,但我正在寻找一些在 Groovy 中更短且无依赖的方法。

我当然知道 answer 用于 Java,但它涉及到丑陋的 ByteArrayInputStream 创建。我正在寻找解决该问题的 GDK 方法。

【问题讨论】:

  • IOUtils.toInputStream() 完全是 new ByteArrayInputStream() 的东西。 GDK 没有添加任何类似于InputStream.getText() 的将String 转换为InputStream 的方法。实际上使用ByteArrayInputStream 是最简单直接的方法。

标签: string groovy inputstream


【解决方案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 中,所以如果你做模拟,也许你可以在测试中使用上面的简写。

【讨论】:

    猜你喜欢
    • 2017-07-28
    • 2013-08-31
    • 2010-12-15
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 2010-12-18
    相关资源
    最近更新 更多