从Groovy中的byte []逐行读取文件内容

时间:2011-11-30 07:44:07

标签: file groovy

我有一个字节[],我需要做的是,逐行读取内容。在Java中我们可以通过将其转换为BufferedReader来实现。但是如何使用Groovy Script做到这一点?

2 个答案:

答案 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
  }
}