node 大型文件 流文件的写入、读取

**大型文件的流文件的写入**
    原因:同步异步文件的写入大文件数据,可能导致内存溢出

(1)var ws=fs.createWriteStream(路径,{配置信息json flags:'a'可开启追加模式});
(2)ws.write('写入流')
(3)ws.end();

**流式文件读取**

(1)fs.createReadStream(路径,{配置信息}/可选);
(2)fs.on('data',function(data){data中是Buffer内容,data.toString()返回内容})
(3)读取流自动关闭,写入流要手动关闭

**读取时写入文件**
 法一:可配合监听,读取流结束时,再关闭写入流,保证数据写入完整
 法二:读取流.pipe(写入流); 将读取流内容放到写入流,自动关闭读、写流

通过流返回对象.on/once(’‘open/close",function(){})监听流的打开和关闭状况
    once触发以后就失效,所以推荐使用once

代码示例:

var fs=require('fs');

var ws=fs.createWriteStream('C:/Users/10853/Desktop/td.txt',{flags:'a'});
ws.once('open',function(){
    console.log('流打开了')
})
ws.write('流写入');
ws.end();
ws.once('close',function(){
    console.log('流关闭了')
})


var rs=fs.createReadStream('C:/Users/10853/Desktop/td.txt');

rs.once('open',function(){
    console.log('流打开了');
})

rs.on('data',function(data){
console.log(data.toString());
})

rs.once('close',function(){
    console.log('流关闭了')
    ws.end();
})

rs.pipe(ws);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值