fs文件系统模块
fs模块是nodejs官方提供的,用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求
- fs.redaFile() 用来读取文件中的内容
- fs.writeFile() 用来向指定文件中写入内容
如果要在javascript代码中,使用fs模块操作文件,则需要使用如下方式先导入它
const fs=require('fs');
fs.readFile()
fs.readFile()方法可以读取指定文件中的内容,语法如下:
fs.readFile(path,[options],callback);
参数解读:
- 参数1:必选参数,字符串,表示文件的路径
- 参数2:可选参数,表示以什么编码格式来读取文件
- 参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果
const fs=require('fs');
//./file/1.txt 自己准备一个.txt文件
fs.readFile('./file/1.txt','utf8',function(err,dataStr){
console.log(err);//读取文件失败的消息
console.log(dataStr);//读取文件成功
})
fs.writeFile(path,txt,[option],callback)
参数解读:
- 参数1:必选参数 要给哪个文件写入内容
- 参数2:必选参数 写入的内容是什么
- 参数3:可选参数 表示以什么编码格式来读取文件
- 参数4: 必选参数 文件写完成后,通过回调函数拿到结果
const fs=require('fs');
//编码格式utf8可省略,因为默认就是以utf8编码的
fs.writeFile('./file/2.txt','helloworld','utf8',function(err,dataStr){
console.log(err);
console.log(dataStr)
})
fs模块综合练习
在成绩1.txt有如下文本
现要求把它转换成以下格式:
//引入fs模块
const fs=require('fs');
fs.readFile('./file/成绩1.txt','utf8',function(err,dataStr){
//如果err为true,证明读取失败
if(err){
return console.log('文件读取失败'+err.message);
}
文件读取成功:输出为以下格式:思路:转数组 换行 再转回字符串
//小红=99 小白=100 小黄=70 小黑=66 小绿=88
var arr=dataStr.split(' ');//按空格切割字符串
//[小红=99,小白=100,小黄=70,小黑=66,小绿=88]
var newArr=[];
//循环把等号换成冒号
for(var i=0;i<arr.length;i++){
newArr.push(arr[i].replace('=',':'))
//[小红:99,小白:100,小黄:70,小黑:66,小绿:88] newArr的结果
}
var str=newArr.join('\r\n');
//把newArr的结果放入到成绩2.txt
fs.writeFile('./file/成绩2.txt',str,function(err,dataStr){
if(err){
return console.log('写入文件失败'+err.message)
}
console.log('写入文件成功')
})
})