1.简介
Node.js内置的stream
模块就是流模块,负责处理流数据。
2. 使用示例
'use strict';
let fs = require('fs')
/**
* @description 写流文件
*/
function writeStream (fileName, encode = 'utf-8') {
let ws = fs.createWriteStream(fileName, encode);
ws.write('hello stream...\n');
ws.write('hello stream11...\n');
// ws.write(new Buffer('hello stream buffer...'));
ws.write('END.');
ws.end();
}
/**
* @description 读取流文件
*/
function readStream (fileName, encode = 'utf-8') {
let rs = fs.createReadStream(fileName, encode);
rs.on('data', function(chunk) {
console.log('DATA:')
console.log(chunk)
})
rs.on('end', function() {
console.log('Read DATA End:')
})
rs.on('error', function(err) {
console.log('ERROR:')
console.log(err)
})
}
/**
* @description 管道pipe
*/
function pipe (readFileName, writeFileName, encode = 'utf-8') {
//pipe 把一个文件流和另一个文件流串起来,这样源文件的所有数据就自动写入到目标文件里
let rs = fs.createReadStream(readFileName, encode);
let ws = fs.createWriteStream(writeFileName, encode);
rs.pipe(ws)
}
module.exports = {
pipe: pipe,
writeStream: writeStream,
readStream: readStream
}