从流中读取数据
var fs = require("fs");
var data = '';
//创建可读流
var readStream = fs.createReadStream('input.txt');
//设置编码为utf8
readStream.setEncoding('utf8');
//处理流事件 --> data,end,and error
readStream.on('data',function(chunk){
data += chunk;
});
readStream.on('end',function(){
console.log(data);
});
readStream.on('erroe',function(err){
console.log(err.stack);
});
console.log("程序执行完毕")
写入流
var fs = require("fs");
var data = '菜鸟教程官网地址:www.runoob.com';
//创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream('output.txt');
//使用utf8编码写入数据
writerStream.write(data,'utf8');
//标记文本末尾
writerStream.end();
//处理流事件 --> finish error
writerStream.on('finish',function(){
console.log("写入完成。");
});
writerStream.on('error',function(err){
console.log(err.stack);
});
console.log("程序执行完毕");
管道流
var fs = require("fs");
//创建一个可读流
var readerStream = fs.createReadStream('input.txt');
//创建一个可写流
var writerStream = fs.createWriteStream('output.txt');
//管道读写操作
//读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readerStream.pipe(writerStream);
console.log("程序执行完成")
链式流:
压缩文件:
var fs = require("fs");
var zlib = require('zlib');
//压缩 input.txt 文件为 input.txt.gz
fs.createReadStream('input.txt')
.pipe(zlib.createGzip())
.pipe(fs.createWriteStream('input.txt.gz'));
console.log("文件压缩完成。");
解压文件:
var fs = require("fs");
var zlib = require('zlib');
//解压 input.txt.gz 文件为 input.txt
fs.createReadStream('input.txt.gz')
.pipe(zlib.createGzip())
.pipe(fs.createWriteStream('input.txt'));
console.log("文件解压完成。");