# Stream 流

# Readable

流的方式读取文件

# 基本使用

const fs = require("fs");

const reader = fs.createReadStream("文件路径", {
  start: 起始位置,
  end: 终止位置,
  highWaterMark: 每次最大读取长度,
});

// 读取数据
reader.on("open", () => {
  console.log("文件被打开");
});

reader.on("data", (data) => {
  console.log(data);

  // 暂停读取
  reader.pause();
  // 恢复读取
  reader.resume();
});

reader.on("close", () => {
  console.log("文件被关闭");
});

# writable

流的方式写出文件

const fs = require("fs");

const writer = fs.createWriteStream("文件路径", {
  flags: "flag选项",
  start: 起始写入位置,
});

writer.write("内容", (err) => {
  if (err) {
    console.log(err);
    return;
  }
  console.log("写入成功");
});

// 关闭文件
writer.end();

# flag 选项

  • w : 打开文件写入,默认值;
  • w+ : 打开文件进行读写,如果不存在则创建文件;
  • r+ : 打开文件进行读写,如果不存在那么抛出异常;
  • r : 打开文件读取,读取时的默认值;
  • a : 打开要写入的文件,将流放在文件末尾。如果不存在则创建文件;
  • a+ : 打开文件以进行读写,将流放在文件末尾。如果不存在则创建文件

# pipe

const reader = fs.createReadStream("./foo.txt");
const writer = fs.createWriteStream("./foz.txt");

reader.pipe(writer);
writer.close();
最后更新: 2022/9/12 16:01:28