2010-06-13 66 views
1

我想在命令行中读取groovy中的整个文件内容。 我使用此代码如何遍历Groovy中命令行上传递的所有文件行?

#!/usr/bin/env groovy 


    def xmlData ="" 

System.in.withReader { 

     xmlData=xmlData+ it.readLine() 

} 

println xmlData 

和下面的命令

cat 1.xml | /root/a.groovy 

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

任何建议? 问候 舒亚

回答

2
it.eachLine{ line -> ... } 

如果您不需要bufferize在内存中的整个文件只是避免完全读它,这将是资源需求。我可以从测试中,我不得不向你保证:)

2

要一次读取一行:

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

,或者要阅读整个事情一气呵成:

xmlData = System.in.text 
1

尝试

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

代替。