Как перебрать все строки файлов, передаваемых в командной строке в Groovy? - PullRequest
1 голос
/ 13 июня 2010

Я хочу прочитать все содержимое файла в groovy в командной строке. Я использую этот код

#!/usr/bin/env groovy


   def xmlData =""

 System.in.withReader {

        xmlData=xmlData+ it.readLine()

} 

println xmlData

и следующая команда

cat 1.xml | /root/a.groovy

Но он читает только одну строку из файла. Я хочу прочитать весь файл.

Любое предложение? С уважением Шуя

Ответы [ 3 ]

2 голосов
/ 13 июня 2010

Чтобы прочитать строку за раз:

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

Или прочитать все за один раз:

xmlData = System.in.text
2 голосов
/ 13 июня 2010
it.eachLine{ line -> ... }

Если вам не нужно буферизовать весь файл в памяти, просто избегайте его полного чтения, это потребует ресурсов ... Я могу заверить вас в тестах, которые мне пришлось сделать:)

1 голос
/ 16 июня 2010

Попробуйте

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

.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...