如何在eachLine中使用firstLine参数

Jer*_*zig 7 groovy

我似乎无法让eachLine跳过第一行,根据这个,有一个整数参数可以传递给eachLine,但我无法弄清楚语法

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
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ail 17

我认为你误解了'firstLine'参数的用途.来自文档:

firstLine - 用于第一行的行号值

基本上这意味着这个数字将标识第一行是什么.它总是遍历文件中的每一行.

所以对于以下代码:

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

它会打印出来:

4行1

5行2

6行3


Mic*_*d a 9

要跳过第一行使用return.它的工作方式就像在标准循环中继续一样.

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

    println "$number: $line"
}
Run Code Online (Sandbox Code Playgroud)