Node中的FS内置模块

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
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值