1、文件内容较多时 以流的方式读取 fs.createReadStream
1) 怎么写 ?
const fs = require("fs");
// 创建读取流
var readStream = fs.createReadStream("./input.txt");
var count = 0;
var str = "";
readStream.on("data", (data) => {
str += data; // 读取数据
count++;
});
// 监听 读取结束时 打印信息
readStream.on("end", () => {
console.log(str);
console.log(count);
});
// 监听 读取失败时 打印信息
readStream.on("error", (err) => {
console.log(err);
});
执行 node app.js 后可看到结果
2、以流的方式 写入文件 fs.createWriteStream
1)怎么写?
// 以流的方式 写入文件
const fs = require("fs");
var str = "";
for (var i = 0; i < 300; i++) {
str += "我是从数据库获取的数据,我需要保存起来\n";
}
//创建 写入流
var writeStream = fs.createWriteStream("./output.txt");
writeStream.write(str);
//标记文件结束
writeStream.end();
// 对写入完成进行监听
writeStream.on("finish", () => {
console.log("写入完成");
});
3、管道流 用的很多 很重要的概念!
1) 解决的场景是 将一个 文件或者图片 放到另外一个文件夹中 (一般针对比较大的东西)
2) 给你来个例子说明一下当前的情况
// 引入 fs模块
const fs = require("fs");
// 创建 读取流
var readStream = fs.createReadStream("./app.js");
// 创建 写入流 当然 后面的路径和文件名都可以改变
var writeStream = fs.createWriteStream("./data/app-copy.js");
// 管道操作 读取流的内容 流进写入流里面
readStream.pipe(writeStream);