node.js 文件操作

在 Node.js 中,文件操作主要通过内置的 `fs`(File System)模块来实现。

1. 读取文件

javascript 复制代码
const fs = require("fs");

// 异步读取文件

fs.readFile("example.txt", "utf8", (err, data) => {

  if (err) {

    console.error("读取文件时出错:", err);

    return;

  }

  console.log("文件内容:", data);

});

// 同步读取文件

try {

  const data = fs.readFileSync("example.txt", "utf8");

  console.log("同步读取文件内容:", data);

} catch (err) {

  console.error("同步读取文件时出错:", err);

}

2. 写入文件

javascript 复制代码
const fs = require("fs");

// 异步写入文件

fs.writeFile("output.txt", "Hello, Node.js!", "utf8", (err) => {

  if (err) {

    console.error("写入文件时出错:", err);

    return;

  }

  console.log("文件写入成功");

});

// 同步写入文件

try {

  fs.writeFileSync("output.txt", "Hello, Node.js!", "utf8");

  console.log("同步文件写入成功");

} catch (err) {

  console.error("同步写入文件时出错:", err);

}

3. 追加文件内容

javascript 复制代码
const fs = require("fs");

// 异步追加内容

fs.appendFile("output.txt", "\nThis is additional content.", "utf8", (err) => {

  if (err) {

    console.error("追加文件时出错:", err);

    return;

  }

  console.log("文件追加成功");

});

// 同步追加内容

try {

  fs.appendFileSync("output.txt", "\nThis is additional content.", "utf8");

  console.log("同步文件追加成功");

} catch (err) {

  console.error("同步追加文件时出错:", err);

}

4. 重命名文件

javascript 复制代码
const fs = require("fs");

// 异步重命名文件

fs.rename("output.txt", "newOutput.txt", (err) => {

  if (err) {

    console.error("重命名文件时出错:", err);

    return;

  }

  console.log("文件重命名成功");

});

// 同步重命名文件

try {

  fs.renameSync("output.txt", "newOutput.txt");

  console.log("同步文件重命名成功");

} catch (err) {

  console.error("同步重命名文件时出错:", err);

}

5. 删除文件

javascript 复制代码
const fs = require("fs");

// 异步删除文件

fs.unlink("newOutput.txt", (err) => {

  if (err) {

    console.error("删除文件时出错:", err);

    return;

  }

  console.log("文件删除成功");

});

// 同步删除文件

try {

  fs.unlinkSync("newOutput.txt");

  console.log("同步文件删除成功");

} catch (err) {

  console.error("同步删除文件时出错:", err);

}

6. 检查文件是否存在

javascript 复制代码
const fs = require("fs");

fs.exists("example.txt", (exists) => {

  console.log("文件是否存在:", exists);

});

const existsSync = fs.existsSync("example.txt");

console.log("同步检查文件是否存在:", existsSync);

7. 读取目录

javascript 复制代码
const fs = require("fs");

// 异步读取目录

fs.readdir(".", (err, files) => {

  if (err) {

    console.error("读取目录时出错:", err);

    return;

  }

  console.log("目录中的文件和目录:", files);

});

// 同步读取目录

try {

  const files = fs.readdirSync(".");

  console.log("同步读取目录中的文件和目录:", files);

} catch (err) {

  console.error("同步读取目录时出错:", err);

}

8. 创建目录

javascript 复制代码
const fs = require("fs");

// 异步创建目录

fs.mkdir("newDirectory", (err) => {

  if (err) {

    console.error("创建目录时出错:", err);

    return;

  }

  console.log("目录创建成功");

});

// 同步创建目录

try {

  fs.mkdirSync("newDirectory");

  console.log("同步目录创建成功");

} catch (err) {

  console.error("同步创建目录时出错:", err);

}

9. 删除目录

javascript 复制代码
const fs = require("fs");

// 异步删除目录

fs.rmdir("newDirectory", (err) => {

  if (err) {

    console.error("删除目录时出错:", err);

    return;

  }

  console.log("目录删除成功");

});

// 同步删除目录

try {

  fs.rmdirSync("newDirectory");

  console.log("同步目录删除成功");

} catch (err) {

  console.error("同步删除目录时出错:", err);

}

10. 复制文件

javascript 复制代码
const fs = require("fs");

const { promisify } = require("util");

// 异步复制文件

const copyFile = promisify(fs.copyFile);

copyFile("source.txt", "destination.txt")

  .then(() => {

    console.log("文件复制成功");

  })

  .catch((err) => {

    console.error("复制文件时出错:", err);

  });

// 同步复制文件

try {

  fs.copyFileSync("source.txt", "destination.txt");

  console.log("同步文件复制成功");

} catch (err) {

  console.error("同步复制文件时出错:", err);

}
相关推荐
孟陬7 小时前
解决动态 import 类型 Any 痼癖
typescript·node.js·bun
Dumbness7 小时前
后台管理员把自己锁在门外:RBAC 里「自己的权限只能由别人来减」
安全·node.js
攻城狮白玉9 小时前
Node.js 发布紧急安全更新:10 个漏洞,8 枚危险证书被拉黑。附AI修复提示词
node.js
Json____1 天前
用 FastAPI + Vue3 打造一套完整的在线考试系统:从组卷到阅卷的业务闭环实践
后端·node.js·fastapi·it学习·wwwoop.com
Dumbness1 天前
写 MCP 服务器踩的坑:stdout 是协议通道,一行不带换行的日志就能让客户端超时
node.js·mcp
flash俊杰1 天前
ContentPart 联合类型实战:不碰存量消息,怎么给 ChatMessage 加图片
node.js
Json____1 天前
用 Node.js + Vue3 打造一个家居装修 AI 智能咨询助手
node.js·agent·网站开发·智能体·wwwoop.com
幸运小圣1 天前
fs 模块完全指南:文件读写、移动删除与文件夹操作(新手友好)【Node.js】
node.js·编辑器·vim
Dumbness2 天前
不发 npm 也能 npx:用 github: 协议分发一个零依赖 CLI
node.js
Patrick_Wilson2 天前
npm 的 bin 如何接到 npm run 与 npx
npm·node.js·前端工程化