node fs模块写入文件 writeFile、writeFileSync、fsPromises.writeFile、createWriteStream

2023-12-29 14:35:50

1.writeFile

它是一个异步写入的方法

函数参数

file <string> | <Buffer> | <URL> | <integer> 文件名或文件描述符
data <string> | <Buffer> | <TypedArray> | <DataView> | <Object>
options <Object> | <string>
	encoding <string> | <null> 默认值: 'utf8'
	mode <integer> 默认值: 0o666
	flag <string> flag具体值的含义,可以参考上一篇文章。 默认值: 'w'
	signal <AbortSignal> 允许中止正在进行的写入文件
callback <Function>
	err <Error> | <AggregateError>

当 file 是文件名时,将数据异步地写入文件,如果文件已存在则替换该文件。 data 可以是字符串或缓冲区。
flag值的含义
当 file 是文件描述符时,其行为类似于直接调用 fs.write()(推荐)。 请参阅以下有关使用文件描述符的说明。
如果 data 是缓冲区,则忽略 encoding 选项。

代码示例

const fs = require("fs");
const fsPromises = require("fs/promises");

fs.writeFile("./写入歌词.txt", Buffer.from("第一次追加"), {}, (res) => {
  console.log("结果", res);
});

在这里插入图片描述

2.writeFileSync

这个是同步的方式写入

函数参数

file <string> | <Buffer> | <URL> | <integer> 文件名或文件描述符
data <string> | <Buffer> | <TypedArray> | <DataView> | <Object>
options <Object> | <string>
	encoding <string> | <null> 默认值: 'utf8'
	mode <integer> 默认值: 0o666
	flag <string> flag具体值的含义,可以参考上一篇文章。 默认值: 'w'
	signal <AbortSignal> 允许中止正在进行的写入文件

代码示例

fs.writeFileSync("./写入歌词.txt", Buffer.from("\n第6次追加"), {
  flag: "a", // 打开文件进行追加,
});

在这里插入图片描述

如果不指定 flag ,使用默认值的话,会覆盖源文件的内容

3.fsPromises.writeFile

此方法需要这样导入
const fsPromises = require("fs/promises");

函数参数

file <string> | <Buffer> | <URL> | <FileHandle> 文件名或 FileHandle
data <string> | <Buffer> | <TypedArray> | <DataView> | <AsyncIterable> | <Iterable> | <Stream>
options <Object> | <string>
	encoding <string> | <null> 默认值: 'utf8'
	mode <integer> 默认值: 0o666
	flag <string> 请参阅对文件系统 flags 的支持。 默认值: 'w'。
	signal <AbortSignal> 允许中止正在进行的写入文件
返回: <Promise> 成功时将返回 undefined 

代码示例

fsPromises
  .writeFile("./写入歌词.txt", Buffer.from("\n第7次追加"), { flag: "a" })
  .then(
    (res) => {
      console.log("res", res);
    },
    (err) => {}
  );

在这里插入图片描述
在这里插入图片描述

4.createWriteStream

创建一个可写流

函数参数

path <string> | <Buffer> | <URL>
options <string> | <Object>
	flags <string> 请参阅对文件系统 flags 的支持。 默认值: 'w'。
	encoding <string> 默认值: 'utf8'
	fd <integer> | <FileHandle> 默认值: null
	mode <integer> 默认值: 0o666
	autoClose <boolean> 默认值: true
	emitClose <boolean> 默认值: true
	start <integer>
	fs <Object> | <null> 默认值: null
返回: <fs.WriteStream>

代码示例

let writeStream = fs.createWriteStream("./写入歌词.txt", {
  flags: "a",
});

// from 第一个参数传递一个对象, length 是长度
// 第二个参数 回调函数,第一个参数是当前项,第二个参数是索引
const textContent = Array.from({ length: 100 }, (_, index) => index + 100);

textContent.forEach((item) => {
  writeStream.write(`\n第${item}次追加`);
});

writeStream.end(); // 关闭流

writeStream.on("finish", () => {
  console.log("写入完成");
});

文章来源:https://blog.csdn.net/qq_45634593/article/details/135288489
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。