nodejs 3分钟学会系列教程(5) fs模块的使用 fs.createReadStream 轻松时刻

988 阅读1分钟

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);