Node——fs模块

837 阅读2分钟

fs文件系统模块

fs模块是nodejs官方提供的,用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求

  • fs.redaFile() 用来读取文件中的内容
  • fs.writeFile() 用来向指定文件中写入内容

如果要在javascript代码中,使用fs模块操作文件,则需要使用如下方式先导入它

  const fs=require('fs');

fs.readFile()

fs.readFile()方法可以读取指定文件中的内容,语法如下:

fs.readFile(path,[options],callback);

参数解读:

  1. 参数1:必选参数,字符串,表示文件的路径
  2. 参数2:可选参数,表示以什么编码格式来读取文件
  3. 参数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. 参数1:必选参数 要给哪个文件写入内容
  2. 参数2:必选参数 写入的内容是什么
  3. 参数3:可选参数 表示以什么编码格式来读取文件
  4. 参数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有如下文本

1.png

现要求把它转换成以下格式:

2.png

//引入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('写入文件成功')
    })
})