Appearance
文件读写
提示
涉及到的文件读写 fs 使用的都是fs-extra
包
1. 写入文件
js
import fs from 'node:fs'
fs.writeFile('example.txt', 'hello NodeJS\n', err => {
if (err) throw err
console.log('文件已创建')
})
js
import fs from 'fs-extra'
try {
await fs.writeFile('example.txt', 'hello NodeJS\n')
console.log('文件已创建')
} catch (err) {
console.log(err)
}
问: 为什么引入模块要写为node:fs
?
答: 写为node:fs
是为保证引入的 fs 来自于 node 本身, 避免引入重名的包文件模块
2. 追加文件
js
import fs from 'node:fs'
// 第一种
fs.appendFile('example.txt', 'hello NodeJS\n', err => {
if (err) throw err
console.log('文件已创建')
})
// 第二种
fs.writeFile('example.txt', 'hello NodeJS\n', { flag: 'a' }, err => {
if (err) throw err
console.log('文件已创建')
})
js
import fs from 'fs-extra'
// 第一种
try {
await fs.appendFile('example.txt', 'hello NodeJS\n')
console.log('文件已创建')
} catch (err) {
console.log(err)
}
// 第二种
try {
await fs.writeFile('example.txt', 'hello NodeJS\n', { flag: 'a' })
console.log('文件已创建')
} catch (err) {
console.log(err)
}
ndoejs 中 fs.appednFile 和 fs.writeFile 使用 flag a 追加模式 有区别吗
答: 使用 fs.writeFile
并设置 flag: 'a'
,那么它和 fs.appendFile
在追加内容到文件方面是没有区别的。
这两种方法的选择取决于你的具体需求和使用场景。如果只是需要追加内容,fs.appendFile
是更简洁的 API 选择。
如果你需要在写入文件时有更多的控制(比如覆写或者追加的选择),则可以使用 fs.writeFile
并通过 flag
参数来指定不同的操作模式。
3. 流式写入
为什么要进行流式写入?
流式写入 适合大文件,或者频繁写入的文件,减少打开关闭文件的次数,提高性能