Reputation: 87187
How can I keep track of the line number I'm on when using eachLine to read a BufferedInputStream?
def input = new GZIPInputStream(new FileInputStream(f))
def reader = new BufferedReader(new InputStreamReader(input))
reader.eachLine {
line ->if(line.contains(searchString)){
println "${f} - ${line}"
}
}
Upvotes: 1
Views: 3224
Reputation: 11035
The closure you pass to eachLine can also take 2 parameters. First being the line of data and the second being the line number.
....
....
reader.eachLine { line, lineNumber ->
if(line.contains(searchString)) {
println "${lineNumber} - ${line}"
}
}
See GDK Doc for InputStream eachLine method.
Upvotes: 9