如何迭代Groovy中命令行上传递的所有文件行?

时间:2010-06-13 17:15:57

标签: file groovy

我想在命令行上的groovy中读取整个文件内容。 我正在使用此代码

#!/usr/bin/env groovy


   def xmlData =""

 System.in.withReader {

        xmlData=xmlData+ it.readLine()

} 

println xmlData

和以下命令

cat 1.xml | /root/a.groovy

但它只从文件中读取一行。我想读整个文件。

有什么建议吗? 问候 舒亚

3 个答案:

答案 0 :(得分:2)

it.eachLine{ line -> ... }

如果你不需要在内存中缓冲整个文件只是为了避免完全读取它,那将是资源要求很高。我可以向你保证我必须做的测试:)

答案 1 :(得分:2)

一次读一行:

System.in.eachLine { line ->
    xmlData += line
}

或者一次性阅读整篇文章:

xmlData = System.in.text

答案 2 :(得分:1)

尝试

#!/usr/bin/env groovy
def xmlData = System.in.text
println xmlData

代替。

相关问题