nodejs学习(04):文件流

0、一些api

方法:

 read 读取数据

setEcoding:设置编码

pause:暂停触发data事件(当读取来自文件的数据触发data事件)

resume:恢复触发data事件

pipe:设计一个数据管道,

unpipe:取消数据管道

事件

open:当文件打开时触发

readable:可以读时候触发

data:读取文件数据时候触发

end:读完所有的文件触发

error:读取错误时候触发

close:读取流对象关闭时候触发

fs.WriteStream 把流数据转换成对象数据,用于写文件的

方法:

write:写入数据

end:当没有数据要写入流中代用该方法

事件:

drain:当write返回fasle时候触发(缓冲区已经满了),

finish:当调用end方法(没有数据要写入流中了)

pipe:用于读取数据流调用了pipe方法时候触发

unpipe:用于读去数据流代用了unpipi方法时候触发

error:写入时候产生错误

1、从文件流读取数据
读取input.txt中的数据

//fs.createReadStream 从文件流中读取数据
const fs = require('fs');
var ReadStream = fs.createReadStream('./input.txt');
var count = 0;
var str = 'dd';
//读取数据
ReadStream.on('data', (data) => { //'data',表示读到数据
    str += data;
    count++;
})
//文件读取完毕
ReadStream.on('end', () => {
    console.log(str);
    console.log(count);
})
//当读取错误时进行操作
ReadStream.on('err', (err) => {
    console.log(err);
})

2、写入文件流

//写入文件流
const fs = require('fs');
var str = '';
for (var i = 0; i < 500; i++) {
    str += "DIO\n";
}
var write = fs.createWriteStream('./input.txt');
write.write(str); //写入文件
//标记写入完成
write.end();
write.on('finish', () => { //要先结束后(调用end方法)才能监听到finish
    console.log('写入完成');

})

3、管道流,复制文件
option中可设置一些参数

const fs = require('fs');
var ReadStream = fs.createReadStream('./aaa.jpg');
var writeSteam = fs.createWriteStream('./data/aaa.jpg');

ReadStream.pipe(writeSteam); //复制文件

4、createReadStream函数
option中可设置一些参数

function createReadStream(path: PathLike, options?: string | {
        flags?: string;
        encoding?: string;
        fd?: number;
        mode?: number;
        autoClose?: boolean;
        /**
         * @default false
         */
        emitClose?: boolean;
        start?: number;
        end?: number;
        highWaterMark?: number;
    }): ReadStream;

5、createWriteStream函数

function createWriteStream(path: PathLike, options?: string | {
        flags?: string;
        encoding?: string;
        fd?: number;
        mode?: number;
        autoClose?: boolean;
        start?: number;
        highWaterMark?: number;
    }): WriteStream;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值