Node.js——fs的模块的读取文件-书写文件

目录

一.fs模块的介绍与初始化

二.fs.readFile()读取文件

第二种方法:

 失败演示:

 三.小结

四.fs.writeFile()方法向指定文件中写入内容

五.案例——整理用户信息


一.fs模块的介绍与初始化

fs模块是node内置API模块,它是用来操作文件的模块

我们可以只用fs模块中的fs.readFile()方法和fs.wirteFile()方法来对文件进行操作:

fs.readFile():读取指定文件内容

fs.writeFile():向指定文件中写入内容

不过想要在JS代码中使用fs模块操作文件的话我们需要 先导入fs模块:

这才是第一步:

const fs = require('fs');

我们调用require()方法来导入fs模块并给到变量fs

然后我们开始进行读写文件的操作:


二.fs.readFile()读取文件

语法:fs.readFile(path[,options],callback)

path:必填项,填写我们要读取的文件路径

options:可选项,表示以什么样的编码格式来读取文本

callback:必填项,文件读取完成之后,通过此回调函数拿到读取结果

(回调函数需有俩个形参:(err,data)分别表示读取失败和读取成功)

我们首先需要一个JS文件和一个文档:

 接下来我们编辑JavaScript代码:

 当我们在终端(我们也可以在当前文件夹中打开cmd终端来运行,和VSCode效果一样)中执行index.js文件时,我们发现输出了:读取失败null字样

真的是我们读取失败了吗?并不是,因为我给到判断式的值就是err,err是错误的表示,那么它输出err为null,那么就是没有错的意思

那既然这样,不妨将将err的值作为判断的依据,如果err为null(成功),那么我们输出data成功获取到的值,否则的话输出读取失败以及失败原因

 //导入fs模块
 const fs = require('fs');
 //调用readFile方法,给到文件路径以及成功和失败的值
 fs.readFile('./测试.txt',function(err,data){
     //判断读取是否成功,输出想对应的值
     err == null ? console.log(data.toString()) : console.log("读取失败" + err) ;
 })

第二种方法:

const fs = require('fs');
fs.readFile('./测试.txt','utf8',function(err,data){
    if(err){
        console.log("读取失败" + err.message);
    }else{
        console.log("读取成功" + data);
    }
});

 失败演示:

我们改变文件名,这时读取不到文件,err参数就会返回错误对象,告知我们该路径下没有相对应文件 


 三.小结

总之,除了readFile()方法的使用,我们还知道:

如果读取成功,err值为null

如果读取失败,err值为错误对象(失败的话data值为undefined)

所以我们可以根据err值是否为null来判断文件是否读取成功

四.fs.writeFile()方法向指定文件中写入内容

语法:fs.writeFile(file,data[,options],callback)

file:必填项,需要填写文件存放路径

data:必填项,填写我们要写入的内容

options:可选项,表示以什么样的编码格式来上传文本(默认为utf8)

callback:必填项,文件上传完成之后,通过此回调函数拿到上传结果

(回调函数需有一个形参:(err)表示失败)上传成功err值为null,上传失败err值为一个错误对象

const fs = require('fs');
 fs.writeFile('./测试.txt','这是我新加进去的数据',function(err){
     if(err){
        console.log("读取失败" + err);
     }else{
        console.log("上传成功");
     }
 })

或者:

const fs = require('fs');
 fs.writeFile('./测试.txt','这是我新加进去的数据',function(err){
     if(err == null){
        console.log("上传成功");
     }else{
        console.log("读取失败" + err);
     }
 })

 这样我们就实现了内容的上传


五.案例——整理用户信息

 首先,我们需要一份初始文件

我们将会读取这个文件,并且改变其中的某些字符串,然后将新整理好的数据写入到新文件中:

//fs模块
const fs = require('fs')
//读取文件
fs.readFile('./原始文件.txt','utf8',function(err,data){
    if(err){
        console.log("获取失败,可能是因为文件格式错误,请检查并重新获取文档" + err.message)
    }else{
        //空格分隔开的为一个用户的信息
        const users = data.split(' ')
        //遍历数组,替换字符
        const usernew = []
        for(let k of users){
            usernew.push(k.replace(/=/g,':'))
        }
        const Str = usernew.join('\r\n')
        console.log(Str)

         //写入文件
        fs.writeFile('./数据整理.txt',Str,function(err){
            if(err){
                console.log("提交失败,可能是因为系统故障,请检查")
            }else{
                console.log("提交成功")
            }
        })
    }
})

我们在node中执行JS文件:

 显示提交成功,我们打开整理好的文件看一下有没有导入进去:

成功导入 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Try Tomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值