我似乎无法让eachLine跳过第一行,根据这个,有一个整数参数可以传递给eachLine,但我无法弄清楚语法
#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
要跳过第一行使用return.它的工作方式就像在标准循环中继续一样.
new FileReader('myfile.txt').eachLine { line, number ->
if (number == 1)
return // continue
println "$number: $line"
}
Run Code Online (Sandbox Code Playgroud)