课程名称:新版 Node.js+Express+Koa2 开发Web Server博客
课程章节:8-2 nodejs文件操作
课程讲师: 双越
课程内容:
代码演示:
在当前文件目录创建 data.txt 文件
// 文件操作基本库
const fs = require("fs");
// 路径操作基本库
const path = require("path");
// resolve() 拼接路径,__dirname node全局变量获取当前目录路径
const fileName = path.resolve(__dirname, "data.txt");
// 读取文件内容
// fs.readFile(fileName, (err, data) => {
// if (err) {
// console.error(err);
// return;
// }
// // data 是二进制类型,需要转换为字符串
// console.log(data.toString());
// });
// 写入文件
// const content = "这是新写入的内容\n";
// const opt = {
// flag: "a", // 追加写入。覆盖用 'w'
// };
// fs.writeFile(fileName, content, opt, (err) => {
// if (err) {
// console.error(err);
// }
// });
// 判断文件是否存在
fs.exists(fileName, (exist) => {
console.log("exist", exist);
});
读取文件:fs.readFile(path[, options], callback)
path:文件名或文件描述符
option:可选,读取选项
- encoding 默认值:
null
- flag 默认值:
'r'
。 - signal 允许中止正在进行的读取文件
callback:回调函数
// 读取文件内容
fs.readFile(fileName, (err, data) => {
if (err) {
console.error(err);
return;
}
// data 是二进制类型,需要转换为字符串
console.log(data.toString());
});
写入文件:fs.writeFile(file, data[, options], callback)
file:文件名或文件描述符
data:写入文件的数据
option:可选,读取选项
- encoding 默认值: utf8
- mode 默认值: 0o666
- flag 默认值:
'w'
。 - signal 允许中止正在进行的写入文件
callback:回调函数
const content = "这是新写入的内容\n";
const opt = {
flag: "a", // 追加写入。覆盖用 'w'
};
fs.writeFile(fileName, content, opt, (err) => {
if (err) {
console.error(err);
}
});
判断文件是否存在:fs.exists(path, callback) 已启弃用,改用 fs.access()
path:文件路径
callback:回调函数
// 判断文件是否存在
fs.exists(fileName, (exist) => {
console.log("exist", exist);
});
//改 fs.access()
fs.access("data.txt", (access) => {
console.log("access", access);
});
课程收获:
- 了解 fs 模块和 path 模块
- 对文件操作有一定的了解