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;