2010-06-13 88 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 

代替。