2. fs 文件系统模块
2.1 简介
fs模块是Node.js官方提供的,用来操作文件的模块
- fs.readFile()方法,用来读取文件内的内容
- fs.writeFile()方法,用来向指定的文件写入内容
用之前先导入
const fs=require('fs')
//fs.readFile(path[,options],callback)
2.2读取文件
const fs=require('fs')
fs.readFile('./sss.txt','utf-8',function(err,dataStr){
//失败后的输出
console.log(err)
console.log('--------')
//成功后的输出
console.log(dataStr)
})
2.3向指定文件写入内容
//fs.writeFile(file,data[,options],callback)
//调用 fs.writeFile
// 参数1 : 表示文件的存放路径
// 参数2 : 表示要写入的内容
// 参数3 : 回调函数
fs.writeFile('./sss.txt',"woaini 1314",function(err){
// 如果文件写入成功,则err的值等于null
// 如果文件写入失败,则err的值等于一个错误对象
console.log(err)
})
2.4 成绩整理案例
//1. 导入模块
import fs from 'fs'
//2. 调用fs.readFile()读取文件内容
fs.readFile('../成绩.txt','utf-8',function(err,dataStr){
//3.判断是否读取成功
if(err){
return console.log("读取文件失败!!" + err.message)
}
//4.读取文件成功,将数据格式进行整理
//4.1先把成绩的数据,按照空格进行分割
const arrOld=dataStr.split(' ')
//4.2循环分割后的数组,对每一项数据,进行字符串的替换操作
const arrNew=[]
arrOld.forEach(item=>{
arrNew.push(item.replace("=",": "))
})
console.log(arrNew)
//4.3把新数组的每一项进行合并,得到一个新的字符串
const newStr= arrNew.join('\r\n')
const.log(newStr)
//5.将处理完毕的成绩,写入到新文件中
fs.writeFile('../成绩.txt',newStr,function(err){
if(err){return console.log("写入文件失败"+err.message)}
console.log("成绩写入成功!")
})
})
2.5 fs模块-路径动态拼接问题
- ./自动拼接当前目录下文件
- 在nodejs中 __dirname 表示当前路径
- 写代码时候 对路径拼接可以使用 __dirname+’相对路径’