【笔记】Nodejs的文件读写

前言

Nodejs通过内置的path模块和内置的fs模块实现文件读写

path模块

引入模块

1
const path = require("path");

拼接路径

__dirname:当前js文件所在的目录

1
2
3
const result = path.join("usr", "/local", "./bin", "../");

console.log(result); // "usr/local/"

拼接绝对路径

  • 给定的参数从右向左处理,直到已经拼接成了绝对路径终止拼接
    • 如果给定的参数中包含绝对路径,则从右向左拼接,直至该参数停止
    • 如果给定的参数中不包含绝对路径,则从左向右拼接,直至所有参数,最后再拼接当前路径的绝对路径
  • 拼接过程中,尾部斜杠会被删除
  • 拼接过程中,空字符串会被忽略
/usr/main.js
1
2
3
const result = path.resolve("./local", "bin", "../main.js");

console.log(result); // "/usr/local/main.js"
/usr/main.js
1
2
3
const result = path.resolve("/local", "/bin", "../main.js");

console.log(result); // "/main.js"
/usr/main.js
1
2
3
const result = path.resolve();

console.log(result); // "/usr"

获取文件名

1
2
3
result = path.basename("/usr/main.js");

console.log(result); // "main.js"

获取文件扩展名

1
2
3
result = path.extname("/usr/main.js");

console.log(result); // ".js"

fs模块

  • 在使用相对路径时,Nodejs会先将相对路径转换为绝对路径,再通过绝对路径读写文件

引入模块

1
const fs = require("fs");

读取文件内容

  • 如果读取成功,则err为null,dataStr为读取文件内容
  • 如果读取失败,则err为错误对象,dataStr为undefined

<file>:读取文件的文件路径
utf-8:指定字符编码

1
2
3
4
5
6
fs.readFile("<file>", "utf-8", function (err, dataStr) {
if (err) {
return console.log(err.message);
}
console.log(dataStr);
});

写入文件内容

  • 如果写入的文件名已存在,则覆盖原文件
  • 写入文件时,只能创建文件,不能创建目录,如果目录不存在则会报错

<file>:写入文件的文件路径
<text>:写入的内容
utf-8:指定字符编码,可以省略,缺省值是utf-8

1
2
3
4
5
fs.writeFile("<file>", "<text>", "utf-8", function (err) {
if (err) {
return console.log(err.message);
}
});

完成

参考文献

哔哩哔哩——黑马程序员
哔哩哔哩——前端开发专业教程