Whatever message this page gives is out now! Go check it out!

FileReadLines

Last update:
May 18, 2026
Reads a specified number of lines from a file starting at a given position, with support for forward and backward reading.

Description

The function enables efficient multi-line reading from files without loading the entire file into memory.
The function supports reading forward, backward (using negative counts), and reading to end-of-file when the count is omitted.

Syntax

FileReadLines(Object file, long startLine [, long count])
ParameterTypeDescription
fileString or FileStreamWrapper (required)File path or FileOpen() object.
startLinelong (required)0-based line number to start reading.
countlong (optional)Number of lines to read. Positive reads forward, negative reads backward. Omit to read to EOF.

Returns

Array of Strings: One element per line read.

Usage Notes

  • Supports Unix (LF), Windows (CRLF), and mixed line endings.
  • Negative count reads lines before the start position.
  • File paths auto-open and auto-close.
  • FileStreamWrapper enables reusable file handles.

Basic- Read First N Lines


<cfscript>
lines = FileReadLines(expandPath("./sample.txt"), 0, 3);
writeOutput(ArrayLen(lines));
</cfscript>

Read All Lines to EOF


<cfscript>
lines = FileReadLines(expandPath("./sample.txt"), 0);
writeOutput(ArrayLen(lines));
</cfscript>

Read from Middle


<cfscript>
lines = FileReadLines(expandPath("./sample.txt"), 1, 3);
writeOutput(lines[1]);
</cfscript>

Backward Reading


<cfscript>
lines = FileReadLines(expandPath("./sample.txt"), 3, -2);
writeOutput(ArrayLen(lines));
</cfscript>

Using FileStreamWrapper


<cfscript>
fs = FileOpen(expandPath("./sample.txt"), "read");
lines = FileReadLines(fs, 1, 2);
FileClose(fs);
</cfscript>

Closure Integration


<cfscript>
lines = FileReadLines(expandPath("./fruits.txt"), 0);
upper = lines.map(function(l){ return UCase(l); });
writeOutput(ArrayToList(upper));
</cfscript>

Error- Non-Existent File


<cfscript>
try {
  FileReadLines("missing.txt",0,5);
} catch(any e){
  writeOutput(e.type);
}
</cfscript>

Error- Closed Stream


<cfscript>
fs = FileOpen("sample.txt","read");
FileClose(fs);
FileReadLines(fs,0,5);
</cfscript>

Share this page

Was this page helpful?
We're glad. Tell us how this page helped.
We're sorry. Can you tell us what didn't work for you?
Thank you for your feedback. Your response will help improve this page.

On this page