Node.js 文件系统 — 读写文件
用 fs 模块读写文件、创建目录、查看文件信息 · 难度:入门 · +20XP
fs 模块 — 操作文件
在 Node.js 中,fs(File System)模块让你可以读写电脑上的文件。这是后端开发的基础——日志记录、配置读取、数据存储都离不开文件操作。
同步 vs 异步
fs 每个方法都有同步和异步两个版本:
| 同步 | 异步(推荐) |
|---|---|
fs.readFileSync() | fs.readFile() |
fs.writeFileSync() | fs.writeFile() |
fs.mkdirSync() | fs.mkdir() |
fs.statSync() | fs.stat() |
同步方法会阻塞程序直到操作完成;异步方法不会阻塞,适合服务器场景。
读写文件
const fs = require("fs");
// 异步读取文件
fs.readFile("data.txt", "utf-8", (err, data) => {
if (err) {
console.error("读取失败:", err);
return;
}
console.log("文件内容:", data);
});
// 写入文件(如果文件不存在会自动创建)
fs.writeFile("output.txt", "Hello Node.js!", "utf-8", (err) => {
if (err) console.error("写入失败:", err);
else console.log("写入成功!");
});
Promise 版本的 fs
Node.js 也支持 Promise 风格(推荐):
const fs = require("fs/promises");
async function readConfig() {
try {
const data = await fs.readFile("config.json", "utf-8");
const config = JSON.parse(data);
console.log("配置:", config);
} catch (err) {
console.error("读取配置失败:", err);
}
}
动手试试
- 写一个程序,创建一个名为 log.txt 的文件,写入当前时间
- 然后读取 log.txt 并输出内容
- 试试故意读一个不存在的文件,看错误处理怎么工作