目录
目标效果:
重点原理:
1.js中split方法——转换字符串为数组
2.js中forEach方法——遍历数组中每个对象
3.js数组操作中push方法——添加1/多个元素去数组的末尾
4.js数组操作中replace方法——在字符串中用一些字符替换另一些字符
5.js数组操作中join方法
6.js中/windows中——\r和\n
cmd终端中:
1.打印arrOld时/arrOld中:
2.打印arrNew时/arrNew中:
3.打印newStr时/newStr中:
代码部分:
整理成绩.js中(全是重点)
目标效果:
1.已有一个成绩.txt文件,里面的内容:
小红=99 小白=100 小黄=70 小黑=66 小绿=88
2.需要用Node.js中的fs.readFile()来获取成绩.txt文件里面的内容,然后经过处理,将处理过后的内容用Node.js中的fs.writeFile()写入到新的txt文件 成绩-ok.txt中
成绩-ok.txt中的内容:
小红:99
小白:100
小黄:70
小黑:66
小绿:88
重点原理:
1.js中split方法——转换字符串为数组
2.js中forEach方法——遍历数组中每个对象
3.js数组操作中push方法——添加1/多个元素去数组的末尾
4.js数组操作中replace方法——在字符串中用一些字符替换另一些字符
5.js数组操作中join方法
6.js中/windows中——\r和\n
\r 表示 回车
\n 表示 换行
cmd终端中:
1.打印arrOld时/arrOld中:
2.打印arrNew时/arrNew中:
3.打印newStr时/newStr中:
代码部分:
整理成绩.js中(全是重点)
// 1. 导入 fs 模块
const fs = require('fs');
// 2. 调用 fs.readFile() 读取文件的内容
// 参数1:读取文件的存放路径
// 参数2:(可选)读取文件时候采用的编码格式,一般默认指定 utf8
// 参数3:回调函数,拿到读取失败的结果err 和 成功的结果dataStr
fs.readFile('./成绩.txt', 'utf8', function (err, dataStr) {
// 3. 判断是否读取成功
if (err) {
// 3.1 打印失败的结果err
// 如果读取成功,则 err 的值为 null
// 如果读取失败,则 err 的值为 错误对象,dataStr 的值为 undefined
return console.log('读取文件失败' + err.message);
}
// 3.2 打印成功的结果dataStr
// console.log('读取文件成功'+dataStr);
// 4.1 先把成绩的数据,按照空格进行分割
const arrOld = dataStr.split(' ');//!!!''中记得加一个空格
// console.log(arrOld);
// 4.2 循环分割后的数组,对每一项数据,进行字符串的替换操作
const arrNew = [];//新建一个空数组arrNew
//(1)用forEach(),遍历arrOld的每个数组元素
arrOld.forEach(function (item) {//item指每个数组元素
//(2)用push(),将遍历得出的结果,追加到arrNew数组中
//(3)用replace(‘被替换的’,‘替换为的’),将原来的=替换为:
arrNew.push(item.replace('=', ':'));
})
// console.log(arrNew);
// 4.3 把新数组中的每一项,进行合并,得到一个新的字符串
//(4)用join('分隔符'),将数组转换成字符串,用newStr接收这个值
const newStr = arrNew.join('\r\n');//(5)\r代表回车 \n代表换行
// console.log(newStr);
// 5. 调用 fs.writeFile() 方法,把处理完毕的成绩newStr,写入到新文件成绩-ok.txt中
// 参数1:表示文件的存放路径
// 参数2:表示要写入的内容
// 参数3:回调函数,err是成功/失败
fs.writeFile('./成绩-ok.txt', newStr, function (err) {
// 6. 判断是否写入成功
if (err) {
// 6.1 如果文件写入成功,则 err 的值等于 null
// 6.2 如果文件写入失败,则 err 的值等于一个 错误对象
console.log('成绩写入失败' + err.message);
}
console.log('成绩写入成功');
})
})