readly
v1.0.2
Published
read files line by line
Downloads
2
Readme
#Readly
nodejs module for reading files or streams line by line
Readly can be used in two ways Emitter: Readly streams the file and fires events when each line is ready Transform: as a transform stream - pipe from and to another stream
usage
Use require("readly");
var Readly = require("readly");
Emitter
Constructor receives:
- filename - path to a file or a stream
- encoding - optional, default is utf8.
- eol - optional, default is OS newline character. This can set the character to split the file by. The constrcutor throws an error if filename is a string but the file does not exist
var reader = new Readly.Emitter("filename.txt")
Readly publishes two events:
line - when a new line data is ready
end - when it is done reading
reader.on('line', function(line) {
console.log(line);
});
reader.on('end', function() {
console.log("done");
});
Readly has the following API:
read(start, count)
start
- optional, default is 0. how many lines to skip from the begining of the file
count
- optional, default is until the end of the file. how many lines to read from start. Can also be bigger than the actual number of lines in the file.
Readly also has the convenient methods:
readAll()
readFirst(count)
example:
reader.read();
reads all lines from the begining of the file to its end, just like reader.readAll()
reader.read(0, 10)
reads the first 10 lines of a file just like reader.readFirst(10)
reader.read(10,20)
skips the first 10 lines of the file and reads not more than the next 20 lines
example skipping 3 lines and then reading 4 lines from a file
var Readly = require("readly");
var reader = new Readly.Emitter("filename.txt");
reader.on('line', function(line) {
console.log(line);
});
reader.on('end', function() {
console.log("done");
});
reader.read(3, 4);
example reading all lines from a stream
var Readly = require("readly");
var fs = require('fs');
var myStream = fs.createReadStream('filename.txt'); //create a stream from any kind of source
var reader = new Readly.Emitter(myStream);
reader.on('line', function(line) {
console.log(line);
});
reader.on('end', function() {
console.log("done");
});
reader.readAll();
example as a transform stream
constructor receives an object options with the same options as the Emitter (encoding, eol)
var Readly = require("readly");
var reader = new Readly.Transform({ encoding: 'utf8', eol: '-'});
var myStream = fs.createReadStream('filename.txt'); //create a stream from any kind of source
var someOutputStream = new SomeOutputStream() //any write or transform stream
myStream.pipe(reader).pipe(someOutputStream);