我有一个字节[],我需要做的是,逐行读取内容。在Java中我们可以通过将其转换为BufferedReader来实现。但是如何使用Groovy Script做到这一点?
答案 0 :(得分:5)
使用Groovy JDK:
的强大功能new ByteArrayInputStream( arr ).eachLine('UTF-8') { line ->
println line
}
注意:如果您需要在字节和字符之间进行1:1映射(例如处理二进制数据时),请使用iso-8859-1
作为编码。
答案 1 :(得分:3)
你可以这样做(检查编码工作):
def input = '''|A small ae: æ
|And an o with stroke: ø'''.stripMargin()
println "Input is:"
println input
// Get the bytes for the input
byte[] arr = input.getBytes( 'UTF-8' )
然后,要读取此字节数组的每一行,您只需要执行:
println "Output is:"
new InputStreamReader( new ByteArrayInputStream( arr ), 'UTF-8' ).with {
eachLine { line ->
println line
}
}