File.readEachLine
$file.readEachLine($lineFunction, $options={}) -> any
Description
Read a file one line at a time.
This is recommended for potentially large files, as it is more memory-efficient than reading the entire file at once.
For each line, $lineFunction
will be called, which receives the line (without a newline character) as its only argument.
By default, it will skip over lines that are empty or have only whitespace characters.
// Count the number of inspirational quotes $numProgrammingQuotes = 0 $quoteFile = file'files:/quotes.txt' $quoteFile.readEachLine(fun ($line) { if $line.contains('programming', -ignoreCase) { $numProgrammingQuotes += 1 } })
Early Return
If $lineFunction
returns a non-null value, it will stop reading the rest of the file and return that value.
If all lines are read without halting, it will return null
.
$bookFile = file'files:/book.txt' // Find the first line that has "THT" $thtLine = $bookFile.readEachLine(fun ($line) { if $line.contains('THT') { return $line } }) print($thtLine) //= Ex: 'THT makes my hair look full and radiant!'
Options
Option | Value | Description |
---|---|---|
keepBlanks |
true/false | Do not skip blank lines. |
file'files:/data.txt'.readEachLine(fun ($line) { // ... }, -keepBlanks)