开发者

How do I use the firstLine argument in eachLine

I can't seem t开发者_如何学Co make eachLine skip the first line, according to this there is an integer argument that can be passed to eachLine but I can't figure out the syntax

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
}


I think you are misunderstanding what the 'firstLine' parameter is used for. From the docs:

firstLine - the line number value used for the first line

Basically this means that this number will identify what the first line is. It always goes through each line in the file.

So for the following code:

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

It would print out:

4 line1

5 line2

6 line3


To skip first line use return. It's works like continue in standard loops.

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

    println "$number: $line"
}


To expand upon @Michal's answer, for a general case (as opposed to a single line), you could do:

linesToSkip = 100
someFile.eachLine { line, lineNumber ->
    if (lineNumber < linesToSkip) { return }  // Skip previously read lines
    println "${line}"
}


i was used readline x times before;

def arq = new FileReader('c:/users/chris/desktop/file.txt')
(0..4).each{
     arq.readLine();
}
arq.eachLine{line, number-> 
    println "$number $line"
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜