Как сохранить количество номеров строк при использовании reader.eachLine для чтения BufferedInputStream? - PullRequest
1 голос
/ 29 июня 2010

Как я могу отслеживать номер строки, на которой я работаю, при использовании eachLine для чтения BufferedInputStream?

def input = new GZIPInputStream(new FileInputStream(f))
def reader = new BufferedReader(new InputStreamReader(input))
reader.eachLine {
    line ->if(line.contains(searchString)){
        println "${f} - ${line}"
    }
}

1 Ответ

8 голосов
/ 29 июня 2010

Закрытие, которое вы передаете каждой линии, также может принимать 2 параметра.Первый - строка данных, а второй - номер строки.

....
....
reader.eachLine { line, lineNumber ->
    if(line.contains(searchString)) {
        println "${lineNumber} - ${line}"
    }
}

См. GDK Doc для метода InputStream eachLine .

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