在 Node JS 中写入文件
使用文件是每个开发人员的基本技能,无论你使用哪种编程语言。在 Node js 中,对文件的处理主要是通过 fs 模块,它对文件进行各种操作。
由于 fs 模块存在于标准库中,我们可以通过简单地要求它在我们的程序中使用它。
const fs = require('fs')
fs 模块提供的默认异步方法之一是 fs.writeFile()
将任何类型的数据写入文件的方法。此方法接受四个参数,如此处所示。
在 NodeJS 中使用 fs.writeFile()
写入数据
var fs = require('fs');
fs.writeFile(filepath, data, [encoding], flag, [callback])
第一个参数用于指定我们正在写入的文件的位置。第二个参数是我们写入指定位置文件的数据。
编码参数是可选的。
但是,编码格式有 base64
、ASCII
、utf8
等多种格式。不指定此参数时,默认编码格式为 utf8
。
flag 参数也是一个可选参数,它指定我们希望对目标文件执行的写入操作的种类。
默认的 flag 是 w
,代表写作。我们可能使用的其他一些标志是用于读取和写入的 r+
,用于将流定位在文件开头的 w+
以及读取和写入。
最后,我们还有 callback
参数。一旦 fs.writeFile()
方法被执行,这个函数就会被调用。
如果方法失败,它还负责抛出错误。在下面的示例中,我们将一些文本写入名为 tesla.txt
的文本文件。
请注意,我们尚未创建文件 tesla.txt
;但是,当使用 fs.writeFile()
API 写入不存在的文件时,将自动创建该文件。
const fs = require('fs');
const text = 'Tesla is largest EV manufacturer';
fs.writeFile('tesla.txt', text, (err) => {
if (err) return console.error(err);
console.log("File successfully written !");
});
由于文件 tesla.txt
不存在,因此创建了代码示例。
但是,当写入存在的文件时,我们正在写入的新内容将覆盖预先存在的内容。
在下面的示例中,我们将向我们创建的 tesla.txt
文件添加新的文本内容。
const fs = require('fs');
const text = 'Lucid Motors is a top EV manufacturer !';
fs.writeFile('tesla.txt', text, (err) => {
if (err) return console.error(err);
console.log("File successfully written !");
});
输出:
Lucid Motors is a top EV manufacturer !
正如 test.txt
文件中所显示的,初始内容已被新内容覆盖。如果我们写一个包含一些内容的文件,我们可以指定附加标志 a
。
这个标志允许我们在文件末尾写一些已经有内容的内容。
const fs = require('fs');
const text = 'Tesla is a giant though!';
fs.writeFile('tesla.txt', text, {flag:'a'}, (err) => {
if (err) return console.error(err);
console.log("File successfully written !");
});
输出:
Lucid Motors is a top EV manufacturer !Tesla is a giant though!
或者,我们也可以使用 fs.appendFile()
将内容写入已经包含某些内容的文件。
在 NodeJS 中使用 fs.appendFile()
将内容写入文件
const fs = require('fs');
const text = 'Tesla is a giant though!';
fs.appendFile('tesla.txt', text, (err) => {
if (err) return console.error(err);
console.log("File successfully written !");
});
输出:
Lucid Motors is a top EV manufacturer !Tesla is a giant though!
fs 模块
还提供了一个异步方法 fs.writeFileSync()
,我们也可以使用它来写入 Node js 中的文件。如果我们正在写入的文件不存在,此方法将创建一个新文件。
当写入包含某些内容而不添加附加标志的文件时,唯一内容也将覆盖旧内容。
const fs = require('fs')
const content = 'Tesla is the largest EV manufacturer!';
try {
fs.writeFileSync('tesla.txt', content)
} catch (err) {
console.error(err)
}
输出:
Tesla is the largest EV manufacturer!
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn