Skip to content

Node.js fs 模块(下)

写入文件

writeFile / writeFileSync

js
const fs = require('node:fs')

// 同步写入(不存在则创建,存在则覆盖)
fs.writeFileSync('index.txt', 'hello world')

// 通过 flag 控制行为
fs.writeFileSync('index.txt', '追加内容', { flag: 'a' })

writeFileSync(文件路径, 内容, { encoding, mode, flag })

appendFile / appendFileSync — 追加内容

js
// 等同于 writeFileSync + flag: 'a'
fs.appendFileSync('index.txt', '\n新的一行')

createWriteStream — 可写流(大数据量)

适合处理大量数据写入,流式写入边写边释放:

js
const writeStream = fs.createWriteStream('output.txt')

dataList.forEach(item => writeStream.write(item + '\n'))

writeStream.end()  // 关闭可写流

writeStream.on('finish', () => console.log('写入完成'))

硬链接 vs 软链接

js
fs.linkSync('./source.txt', './hard.txt')      // 硬链接
fs.symlinkSync('./source.txt', './soft.txt', 'file')  // 软链接(符号链接)
硬链接 (hard link)软链接 (symlink)
本质多个文件名指向同一 inode指向目标路径的快捷方式
跨分区不可以可以
目录不可以可以
源文件删除后数据仍然存在链接失效(断链)
用途文件共享、备份、不复制改名快捷方式、解决路径变化

简单理解:硬链接是同一个文件的不同名字,软链接是快捷方式。