fs内置模块赋予了在NODE环境下操作 I/O 的能力
默认I/O的异步操作是基于回调函数处理的
不论是readFile还是writeFile 都必须要写回调函数
获取绝对路径的两个方法
const path = require("path")
console.log(path.resolve(""));
=> 上面这两步 也可以获取绝对路径 下面这一个也可以
console.log(__dirname)
const fs = require("fs")
// => 1.readFile/readFileSync:读取文件中的内容,默认返回的是 Buffer流格式,指定 utf8让其变为字符串
const text = fs.readFileSync(`${__dirname}/package.json`, "utf8") // => 同步操作
console.log(text);
console.log(__dirname); // => 获取当前模块所在的绝对路径
// => 默认I/O的异步操作是基于回调函数处理的
fs.readFile(`${__dirname}/package1.json`, "utf8", (err, result) => {
console.log(err, result);
})
/**
* 导入自己的FS库
*/
const fsPromise = require("./lib/myFs")
fsPromise.readFile("./package1.json")
.then(result => {
console.log(result);
}).catch(err => {
console.log(err);
})
/**
* writeFileSync/writeFile写入内容
* writeFileSync覆盖式写入 (appendFile追加试写入)
* path:不存在会默认创建一个
* data:必须是字符串格式
*/
const fs = require("fs")
fs.writeFileSync("./1.txt", "清欢", "utf8")
fs.writeFile("./1.txt", "长安", "utf8", err => {
console.log(err);
})
const fs = require('fs'),
path = require('path');
// => 读文件
function readFile(pathname, encoding = 'utf8') {
return new Promise((resolve, reject) => {
pathname = path.resolve(pathname);
fs.readFile(pathname, encoding, (err, result) => {
if (err) {
reject(err);
return;
}
resolve(result);
});
});
}
// => 写文件
function writeFile(pathname, data, encoding = 'utf8') {
return new Promise((resolve, reject) => {
if (typeof data !== "string") {
data = JSON.stringify(data);
}
pathname = path.resolve(pathname);
fs.writeFile(pathname, data, encoding, err => {
if (err) {
reject(err);
return;
}
resolve();
});
});
}
module.exports = {
readFile,
writeFile
};