网站设计素材网站推荐,宁波网页平面设计,wordpress自动标签链接,wordpress自带主题有什么四种基本流类型: 1.Writable: 可以向其写入数据的流 2.Readable: 可以从中读取数据的流 3.Duplex#xff1a;同时为Readable 和 Writable 4.Transform: Duplex可以在写入和读取数据时修改或转换数据的流 一、Readable
const fs require(fs);// 创建文件的Readable
const rea… 四种基本流类型: 1.Writable: 可以向其写入数据的流 2.Readable: 可以从中读取数据的流 3.Duplex同时为Readable 和 Writable 4.Transform: Duplex可以在写入和读取数据时修改或转换数据的流 一、Readable
const fs require(fs);// 创建文件的Readable
const reader fs.createReadStream(./test.txt, {start: 8, // 文件读取开始的位置end: 18, // 文件读取结束的位置highWaterMark: 4 // 一次性读取字节的长度默认是64kb
})// 监听 read 数据
reader.on(data, (data) {console.log(data.toString());
})// 监听打开文件
reader.on(open, (fd) {console.log(文件被打开);
})// 监听读取结束
reader.on(end, () {console.log(文件读取结束);
})// 监听关闭文件
reader.on(close, () {console.log(文件被关闭);
})二、Writable
// 创建文件的Writable
const writer fs.createWriteStream(./test.txt, {flags: a, // 追加写入start: 8 // 写入位置
});// 写入数据
writer.write(Hello OUTMAN, () {console.log(写入成功);
})// 监听文件打开
writer.on(open, () {console.log(文件被打开);
})// 监听文件关闭无法监听
// 无法监听的原因写入流在打开后不会自动关闭必须手动触发来通知node已经写入结束并发射finish事件
writer.on(close, () {console.log(文件被关闭); // 无法监听不打印
})// 手动close后, finish --- close
writer.close();writer.on(finish, () {console.log(文件写入完成);
})writer.on(close, () {console.log(文件被关闭);
})// 直接使用endend write传值 文件close一步到位
writer.end(Hello Outman!)三、pipe方法
// pip方法
const reader fs.createReadStream(./test.txt);
const writer fs.createWriteStream(./copy.txt);// 常规方法嵌套 read write
reader.on(data, (data) {console.log(data);writer.write(data, (err) {console.log(err);})
})// 利用pipe实现
reader.pipe(writer);