Stream

该文展示了如何在Node.js中使用fs模块进行读取和写入流操作,包括从input.txt读取数据,写入output.txt,以及利用管道流实现文件内容传输。同时,文章还涵盖了使用zlib模块进行文件的gzip压缩和解压。
摘要由CSDN通过智能技术生成

从流中读取数据

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("文件解压完成。");

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值