小红=99 小白=100 小黄=70 小黑=66 小绿=88 整理前
小红:99 小白:100 小黄:70 小黑:66 小绿:88 整理后
使用fs文件系统模块 将文件内容 进行整理
1. 准备一个TXT文件 文件名命名为 成绩.txt 内容格式如下想
小红=99 小白=100 小黄=70 小黑=66 小绿=88 整理后
2. 准备一个 TET文件 文件命名为 整理后的成绩.txt 内容 暂为空
3. 准备JavaScript代码部分进行读取 修改成绩.txt文件内容 将修改后的内容 放入到 整理后的成绩.txt 文件中
// 1.导入fs模块
const fs = require('fs')
// 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(' ')
console.log(arrOld);
// 4.2 循环分割后的数组,对每一项数据,进行字符串的替换操作
const arrNew = []
arrOld.forEach(item=>{
arrNew.push(item.replace('=',':'))
})
console.log(arrNew);
// 4.3 把新数组中的每一项,进行合并,得到一个新的字符串
const newStr = arrNew.join('\r\n')
console.log(newStr);
// 5.调用fs.weiteFile() 方法 把处理完毕的成绩,写入到新文件中
fs.writeFile('./成绩-ok.txt',newStr, function(err,dataStr){
if(err){
return console.log('写入失败'+err.message);
}
console.log('成绩写入成功');
})
})
fs模块-路径动态拼接的问题
在使用fs模块操作文件时,如果提供的操作路径是以./或../开头的相对路径时,很容易出现路径动态拼接错误的问题 原因:代码在运行的时候,会议执行node命令时所处的目录,动态拼接出被操作文件的完整路径
解决:如果要解决这个问题,可以直接提供一个完整的文件存放路径就行 (移执性非常差 不利于维护
最优解决方案: 使用__dirname 表示当前文件所处的目录
__dirname 表示当前文件所处的目录
console.log(__dirname);
fs.readFile(__dirname +'/flies/1.txt','utf8',function(err,dataStr){
if(err){
return console.log('文件读取失败'+err.message);
}
console.log(dataStr);
})