Как использовать аргумент firstLine в каждой линии - PullRequest
7 голосов
/ 23 апреля 2010

Я не могу заставить каждую строку пропустить первую строку, в соответствии с этим есть целочисленный аргумент, который можно передать каждой строке, но я не могу понять синтаксис

http://docs.groovy -lang.org / latest / html / groovy-jdk / java / io / File.html # eachLine (int, groovy.lang.Closure)

#doesn't work
new FileReader('myfile.txt').eachLine firstLine=2,{
       line-> println line
}
#nope
new FileReader('myfile.txt').eachLine(2){
       line-> println line
}

Ответы [ 3 ]

16 голосов
/ 23 апреля 2010

Я думаю, вы неправильно понимаете, для чего используется параметр 'firstLine'.Из документов:

firstLine - значение номера строки, используемое для первой строки

В основном это означает, что это число будет идентифицировать, какова первая строка.Он всегда проходит через каждую строку в файле.

Таким образом, для следующего кода:

new FileReader('c:/users/chris/desktop/file.txt').eachLine(4){line, number-> 
    println "$number $line"
}

Будет напечатано:

4 строки1

5 строк2

6 строк3

7 голосов
/ 17 октября 2013

Чтобы пропустить первую строку, используйте return . Это работает как продолжить в стандартных циклах.

new FileReader('myfile.txt').eachLine { line, number ->
    if (number == 1)
        return // continue

    println "$number: $line"
}
0 голосов
/ 20 октября 2017

я использовал readline x раз;

def arq = new FileReader('c:/users/chris/desktop/file.txt')
(0..4).each{
     arq.readLine();
}
arq.eachLine{line, number-> 
    println "$number $line"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...