fs 文件系统模块( 二 )

// 1. 导入 fs 模块const fs = require('fs')// 2. 调用 fs.readFile() 读取文件的内容fs.readFile('../素材/成绩.txt', 'utf8', function(err, dataStr) {// 3. 判断是否读取成功if (err) {return console.log('读取文件失败!' + err.message)}// console.log('读取文件成功!' + dataStr)// 4.1 先把成绩的数据,按照空格进行分割const arrOld = dataStr.split(' ')// 4.2 循环分割后的数组,对每一项数据,进行字符串的替换操作const arrNew = []arrOld.forEach(item => {arrNew.push(item.replace('=', ':'))})// 4.3 把新数组中的每一项,进行合并,得到一个新的字符串const newStr = arrNew.join('\r\n')// 5. 调用 fs.writeFile() 方法,把处理完毕的成绩,写入到新文件中fs.writeFile('./files/成绩-ok.txt', newStr, function(err) {if (err) {return console.log('写入文件失败!' + err.message)}console.log('成绩写入成功!')})})
5、fs 模块 - 路径动态拼接的问题
在使用 fs 模块操作文件时,如果提供的操作路径是以 ./ 或 ../ 开头的相对路径时,很容易出现路径动态拼接错误的问题 。
原因:代码在运行的时候,会以执行 node 命令时所处的目录,动态拼接出被操作文件的完整路径 。
解决方案:在使用 fs 模块操作文件时,直接提供完整的路径,不要提供 ./ 或 ../ 开头的相对路径,从而防止路径动态拼接的问题 。
:表示当前文件所处的目录,这是node给我们提供的一个函数
【fs 文件系统模块】const fs = require('fs')// 出现路径拼接错误的问题,是因为提供了 ./ 或 ../ 开头的相对路径// 如果要解决这个问题,可以直接提供一个完整的文件存放路径就行/* fs.readFile('./files/1.txt', 'utf8', function(err, dataStr) {if (err) {return console.log('读取文件失败!' + err.message)}console.log('读取文件成功!' + dataStr)}) */// 移植性非常差、不利于维护/* fs.readFile('C:\\Users\\escook\\Desktop\\Node.js基础\\day1\\code\\files\\1.txt', 'utf8', function(err, dataStr) {if (err) {return console.log('读取文件失败!' + err.message)}console.log('读取文件成功!' + dataStr)}) */// __dirname 表示当前文件所处的目录// console.log(__dirname)fs.readFile(__dirname + '/files/1.txt', 'utf8', function(err, dataStr) {if (err) {return console.log('读取文件失败!' + err.message)}console.log('读取文件成功!' + dataStr)})