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"
}
精彩评论