学习笔记之node.js——fs模块、path模块

//导入
const fs = require('fs');
//读取文件
//              路径         解码方式  回调函数||读取错误时||读取正确时
fs.readFile('./01.demo.txt', 'utf-8', function (err, dataStr) {
    //通过判断err是否为null,说明是否读取成功,null转Boolean类型是false
    if (err) {
        console.log("读取文件失败:" + err.message);
        return;
    }
    const arr1 = dataStr.split(' ');
    //console.log(arr1);
    const arr2 = [];
    arr1.forEach(function (item) {
        arr2.push(item.replace('=', ':'));
    })
    const newStr = arr2.join('\r\n');
    console.log(newStr);
});
//写入文件
//              路径             内容          编码方式(可省略) 回调函数
/*             (如果路径正确文件不存在会创建一个,路径错误则错误)
fs.writeFile("./01.demo.txt", "hellomotherfucker", "utf-8", function (err) {
    if(err){
            console.log("写入文件失败:" + err.message);
            return;
    }
    console.log("文件写入成功");
})*/

视频指出

在使用fs模块操作文件时,如果提供的操作路径是以./或../开头的相对路径时,很容易出现路径动态拼接错误的问题。原因:代码在运行的时候,会以执行node命令时所处的目录,动态拼接出被操作文件的完整路径。

话说这为什么要这样拼接呢,根据相对路径不是能直接找到吗?

视频又指出解决方案:用绝对路径(我并不是很赞同,又臭又长)

视频又优化了解决方案:用__dirname(表示当前文件所处路径)+相对路径(这还差不多)
 


path.join([path1][, path2][, ...])
用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是"/",Windows系统是"\"。

这样上边的路径可以path.join('__dirname' , ' ./xxxxxxx');

需要注意,和    ../        拼接时会回退一级

path.basename(p[, ext])
返回路径中的最后一部分。

参数p是路径字符串

参数ext是文件后缀名,可选

只传路径名返回结果是末尾的文件包括后缀,传后缀的的话,只返回文件名字不包括后缀

path.extname(p)
返回路径中文件的后缀名,即路径中最后一个'.'之后的部分。如果一个路径中并不包含'.'或该路径只包含一个'.' 且这个'.'为路径的第一个字符,则此命令返回空字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

VIXeH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值