Node.js fs.createReadStream() Method
Last Updated :
14 Apr, 2025
The fs.createReadStream() method in Node.js is used to create a readable stream to read data from a file. This method is part of the fs (file system) module and is ideal for reading large files, as it reads the file in chunks rather than loading the entire file into memory.
Syntax
fs.createReadStream( path, options )
Parameters: This method accepts two parameters, as mentioned above and described below:
- path: This parameter specifies the path to the file that you want to read. It can be a string, buffer, or URL.
- options (optional): This parameter can be a string or an object. Some options you can specify are:
- encoding: Specifies the character encoding (e.g., 'utf8', 'ascii'). Default is null (which returns data as a buffer).
- flag: A string that specifies the file system flags (e.g., 'r' for read).
- start: The starting byte position for reading the file (useful for reading a portion of the file).
- end: The byte position at which to stop reading.
- highWaterMark: The number of bytes to read in each chunk (buffer size).
Return Value: This method returns the fs.ReadStream object.
The fs.createReadStream()
method is used to read files in chunks, improving performance in Node.js.
Features
- Efficient Memory Usage: Streams are memory-efficient because they don’t load the entire file into memory. This is particularly useful for large files.
- Event-Driven: Streams are event-driven, meaning you can listen for and react to various events like data, end, error, etc.
- Pipeable: Streams can be piped into other writable streams, enabling powerful chaining of operations, such as reading from a file and immediately writing to another file or a network connection.
Below examples illustrate the createReadStream() method in Node.js:
Example 1: This example uses the fs.createReadStream()
method to read and display the contents of a file (input.txt
) in chunks to the console.
JavaScript
// Filename - index.js
// Node.js program to demonstrate the
// fs.createReadStream() method
// Include fs module
let fs = require('fs'),
// Use fs.createReadStream() method
// to read the file
reader = fs.createReadStream('input.txt');
// Read and display the file data on console
reader.on('data', function (chunk) {
console.log(chunk.toString());
});
Output (assuming input.txt contains "GeeksforGeeks: A computer science portal for geeks"):
input.txt file data:
GeeksforGeeks: A computer science portal for geeks
Example 2: This example demonstrates the use of fs.createReadStream() to read a specific portion of a file (input.txt) with custom options like encoding, byte range, and buffer size, and then displays the read data in chunks on the console.
JavaScript
// Filename - index.js
// Node.js program to demonstrate the
// fs.createReadStream() method
// Include fs module
let fs = require('fs'),
// Use fs.createReadStream() method
// to read the file
reader = fs.createReadStream('input.txt', {
flag: 'a+',
encoding: 'UTF-8',
start: 5,
end: 64,
highWaterMark: 16
});
// Read and display the file data on console
reader.on('data', function (chunk) {
console.log(chunk);
});
Output:
forGeeks: A comp
uter science por
tal for geeks
In this example, we read from byte position 5 to 64 and print the data in chunks of 16 bytes.
Conclusion
The fs.createReadStream() method is a powerful tool for handling file input in a memory-efficient and scalable way. Whether you're dealing with large files or just need to stream data efficiently, fs.createReadStream() provides the necessary functionality to handle such tasks seamlessly in Node.js.
Similar Reads
Node JS fs.readFile() Method âIn Node.js, the fs.readFile() method is a fundamental tool for reading files asynchronously, allowing your application to remain responsive while accessing file data. This method is part of Node.js's File System (fs) module, which provides an API for interacting with the file system.Syntaxfs.readFi
3 min read
Node.js fs.exists() Method The fs exists method in node is used to check if the input file or the directory exists or not. It is an inbuilt application programming interface of fs module which provides an API for interacting with the file system in a manner closely modeled around POSIX functions. Syntax:fs.exists( path, callb
2 min read
Node fs.existsSync() Method In Node.js, the fs.existsSync() method checks if a file or folder exists at a given path. It's synchronous, meaning it pauses the program until it finds the result (either true if it exists, or false if it doesn't). Because it stops everything while it works, itâs best used for quick checks in small
3 min read
Node fs.mkdir() Method The fs.mkdir() method in Node.js is used to create a directory asynchronously.Syntaxfs.mkdir(path, mode, callback)Parameters: This method accepts three parameters as mentioned above and described below: path: This parameter holds the path of the directory that has to be created.mode: This parameter
2 min read
Node.js fs.truncate() Method The fs.truncate() method in node.js is used to change the size of the file i.e either increase or decrease the file size. This method changes the length of the file at the path by len bytes. If len represents a length shorter than the file's current length, the file is truncated to that length. If i
2 min read
Node.js fs.renameSync() Method In Node.js, the fs.renameSync() method is part of the built-in File System (fs) module and is used to rename or move files and directories synchronously. This method is useful when you need to quickly change a file's name or move it to a different directory synchronously. It blocks the execution of
3 min read
Node.js fs.rmdir() Method The fs.rmdir() method is used to delete a directory at the given path. It can also be used recursively to remove nested directories.Syntax: fs.rmdir( path, options, callback )Parameters: This method accepts three parameters as mentioned above and described below: path: It holds the path of the direc
3 min read
Node.js fs.stat() Method The fs.stat() method is used to return information about the given file or directory. It returns an fs.Stat object which has several properties and methods to get details about the file or directory. Syntax:fs.stat( path, options, callback )Parameters: This method accept three parameters as mentione
3 min read
Node.js fs.mkdtempSync() Method The fs.mkdtempSync() method is an inbuilt application programming interface of fs module which provides an API for interacting with the file system in a manner closely modeled around standard POSIX functions. The fs.mkdtempSync() method creates a unique temporary directory. This is the synchronous v
2 min read
Node.js fs.realpath() Method The fs.realPath() method is used to compute the canonical pathname of the given path. It does so by resolving the ., .. and the symbolic links in the path. Syntax: fs.realpath( path, options, callback ) Parameters: This method accept three parameters as mentioned above and described below: path: It
3 min read