网站做微信支付宝支付,wordpress主题 html5,天津专业做网站,国内正规seo网络推广流式文件写入 读取
流式文件写入 / 读取适合操作大文件 流式写入
① 创建可写流#xff1a;fs.createWriteStream(path[, options])
path#xff1a;文件路径options#xff1a;配置对象 flags#xff1a;文件系统标志#xff0c;默认值为 wencoding#xff1a;…流式文件写入 读取
流式文件写入 / 读取适合操作大文件 流式写入
① 创建可写流fs.createWriteStream(path[, options])
path文件路径options配置对象 flags文件系统标志默认值为 wencoding数据的编码格式默认为 utf8
返回值WriteStream 对象
const fs require(fs);
let ws fs.createWriteStream(./WS.txt);创建可写流后可写流会自动开启写入完成后需要手动关闭 ② 写入数据ws.write(data)
data需要写入的数据
const fs require(fs);
let ws fs.createWriteStream(./WS.txt);let content 需要写入的内容;
ws.write(content);
ws.write( 追加的内容);③ 通过监听流的 open 和 close 事件来监听流的开关
因为 open 和 close 操作都只会出现一次所以这里使用 once() 绑定事件
const fs require(fs);
const ws fs.createWriteStream(./WS.txt);const content 需要写入的内容;
ws.write(content);
ws.write( 追加的内容);// 监听 open 事件
ws.once(open, (_) console.log(可写流打开了));
// 监听 close 事件
ws.once(close, (_) console.log(可写流关闭了));可以看见只打印了 可写流打开了因为可写流会自动开启但不会自动关闭 ④ 关闭可写流ws.close([callBack]) / ws.end([callBack])
callBack回调函数关闭可写流后调用接收一个参数 err默认为 null
const fs require(fs);
const ws fs.createWriteStream(./WS.txt);const content 需要写入的内容;
ws.write(content);
ws.write( 追加的内容);ws.once(open, (_) console.log(可写流打开了));// 调用 close 方法关闭可写流
ws.close((_) console.log(可写流关闭了));流式读取
① 创建可读流fs.createReadStream(path)
path文件的路径
返回值ReadStream 对象
const fs require(fs);
let rs fs.createReadStream(./WS.txt);创建可读流后可读流会自动开启。但此时还不会读取数据我们可以通过 rs.readableFlowing 查看数据是否已经在读取null-未读取、true-正在读取、false-读取完已关闭 ② 给可读流绑定一个 data 事件绑定完毕后会自动开始读取数据每次最多读取 65536 byte
回调函数接收一个参数 datadata 就是可读流传出的数据二进制数据
const fs require(fs);
const rs fs.createReadStream(./WS.txt);rs.on(data, (data) {console.log(开始读取数据);console.log(data, data);
});读取完后可读流会自动关闭 ③ 通过监听流的 open 和 close 事件来监听流的开关
因为 open 和 close 操作都只会出现一次所以这里使用 once() 绑定事件
const fs require(fs);
const rs fs.createReadStream(./WS.txt);// 监听 open close 事件
rs.once(open, (_) console.log(readStream open!));
rs.once(close, (_) console.log(readStream close!));rs.on(data, (data) {console.log(开始读取数据);console.log(data, data);
});demo配合可写流使用
const fs require(fs);
const rs fs.createReadStream(./rs.txt);
const ws fs.createWriteStream(./ws.txt);// 监听 data 事件开启可读流
rs.on(data, (data) {console.log(开始读取数据);console.log(data, data ); // 打印可读流里面的数据ws.write(data); // 写入读取到的数据
});// 监听可读流
rs.once(open, (_) console.log(ReadStream open!));
rs.once(close, (_) {console.log(ReadStream close!);ws.end(); // 可读流关闭后手动关闭可写流
});// 监听可写流
ws.once(open, (_) console.log(WriteStream open!));
ws.once(close, (_) console.log(WriteStream close!));管道 pipe
pipe()可以将可读流中的数据直接传到可写流中
const fs require(fs);
const rs fs.createReadStream(./WS.txt);
const ws fs.createWriteStream(./123.txt);rs.pipe(ws); // 开启可读流写入读取到的数据写入完毕后自动关闭可写流// 监听可读流
rs.once(open, (_) console.log(ReadStream open!));
rs.once(close, (_) console.log(ReadStream close!));// 监听可写流
ws.once(open, (_) console.log(WriteStream open!));
ws.once(close, (_) console.log(WriteStream close!));同步文件写入
openSync
① 打开文件fs.openSync(path[, flags]) path文件路径 flags文件系统标志 r (read)读取数据。如果文件不存在则报错默认 w (write)写入数据。如果文件不存在则创建该文件否则覆盖文件原内容 a (add)追加数据。如果文件不存在则创建该文件否则追加内容
返回值表示文件描述符的整数 fd
const fs require(fs);// 打开文件
const fd fs.openSync(new.txt, w);
console.log(fd); // fd 3writeSync
② 写入内容fs.writeSync(fd, data[, position[, encoding]])
fd表示文件描述符的整数data需要写入的内容position开始写入的位置eg2 → 空两位再开始写数据encoding写入的数据编码格式默认为 utf8
返回值写入的字节数如果 data 是普通的对象则它必须具有自己的不是继承的toString 方法
const fs require(fs);const fd fs.openSync(hello.txt, w);// 写入数据
const len fs.writeSync(fd, hello superman);
console.log(len, len); // len 14closeSync
③ 关闭文件fs.closeSync(fd)
fd表示文件描述符的整数
const fs require(fs);const fd fs.openSync(hello.txt, w);
fs.writeSync(fd, hello superman);// 关闭文件
fs.closeSync(fd);写入完成后需要关闭文件避免资源的浪费 异步文件写入
open
① 打开文件fs.open(path[, flags], callback) path文件的路径 flags文件系统标志 r (read)读取数据。如果文件不存在则报错默认 w (write)写入数据。如果文件不存在则创建该文件否则覆盖文件原内容 a (add)追加数据。如果文件不存在则创建该文件否则追加内容 callBack回调函数打开文件后调用接收 2 个参数 err错误信息默认为 null fd表示文件描述符的整数
const fs require(fs);// 打开文件
fs.open(hello.txt,w,(_) console.log(arguments) // [Arguments] { 0: null, 1: 3 }
);write
② 写入数据fs.write(fd, string[, position[, encoding]], callback) fd表示文件描述符的整数 string需要写入的内容 position开始写入的位置eg2 → 空两位再开始写数据一般不写 encoding写入的数据编码格式默认为 utf8一般不写 callBack回调函数接收 3 个参数 err错误信息默认为 null len写入的字节数 data写入的数据内容
const fs require(fs);// 打开文件
fs.open(hello.txt, w, (err, fd) {// 写入数据fs.write(fd, 异步写入的内容, (_) {console.log(arguments); // [Arguments] { 0: null, 1: 21, 2: 异步写入的内容 }});
});close
③ 关闭文件fs.close(fd, callBack)
fd表示文件描述符的整数callBack回调函数接收 1 个异常参数 err默认为 null
const fs require(fs);// 打开文件
fs.open(hello.txt, w, function (err, fd) {if (err) return console.log(err, err);console.log(open);// 写入数据fs.write(fd, 异步写入的内容, (err) {if (err) return console.log(err, err);console.log(write);// 关闭文件fs.close(fd, function (err) {if (err) return console.log(err, err);console.log(close);});});
});