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
}