fs文件系统模块

文章介绍了Node.js中的fs模块,用于读取和写入文件。fs.readFile用于读取文件内容,fs.writeFile用于写入文件。通过示例展示了如何使用这两个方法。还讨论了路径动态拼接问题,提到了使用绝对路径和__dirname解决路径问题的方法。
摘要由CSDN通过智能技术生成

##fs模块

Node.js官方提供的、用来操作文件的模块

(1)fs.readFile()方法,用来读取指定文件中的内容

(2)fs.writeFile()方法,用来向指定的文件中写入内容

1、导入fs模块

const fs = require('fs')

2、fs.readFile()读取文件内容

(1)语法格式

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

参数1,必选参数,字符串,表示文件的路径;参数2,可选参数,表示以什么编码格式来读取文件;参数3,必选参数,文件读取完后,通过回调函数拿到读取的结果

(2)例子

// 导入fs模块来操作文件

const fs = require('fs')

fs.readFile('./files/1.txt','utf-8',function(err,dataStr) {

// 打印失败的结果

if(err){

return console.log('读取文件失败!'+err.message)

}

// 打印成功的结果

console.log('读取文件成功!'+dataStr)

})

PowerShell中执行该js文件

PS C:\Users\HAO21\Desktop\nodejs_basic> node .\01.使用readFile方法读取文件内容.js

读取文件成功!Hello Node.js!!!

3、fs.writeFile()写入内容

(1)语法格式

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

参数1:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径;参数2:必选参数,表示要写入的内容;参数3,可选参数,表示以什么格式写入文件内容,默认是utf-8;参数4,必选参数,文件写入后,通过回调函数拿到读取的结果

(2)例子

// 导入fs模块来操作文件

const fs = require('fs')

fs.writeFile('./files/2.txt','abcdef',function(err){

if(err){

return console.log('文件写入失败'+err.message)

}

console.log('文件写入成功')

})

PowerShell中执行该js文件

PS C:\Users\HAO21\Desktop\nodejs_basic> node .\02.writeFile写入文件内容.js

文件写入成功

#案例:考试成绩

const fs = require('fs')

fs.readFile('./files/score.txt','utf8',function(err,dataStr){

if(err){

return console.log('读取文件失败!'+err.message)

}

// 1、先把成绩的数据,按照空格进行分割

const arrOld = dataStr.split(' ')

// 2、循环分割后的数组,对每一项数据,进行字符串的替换操作

const arrNew = []

arrOld.forEach(item => {

arrNew.push(item.replace('=',':'))

})

// 3、把新数组中的每一项,进行合并,得到一个新的字符串

const newStr = arrNew.join('\r\n')

// 将处理好的文件写入到一个新的文件中score_ok.txt

fs.writeFile('./files/score_ok.txt', newStr,function(err){

if(err){

return console.log('score_ok文件写入失败!',err.message)

}

console.log('score_ok文件写入成功!')

})

})

PS C:\Users\HAO21\Desktop\nodejs_basic> node .\03.考试成绩整理.js

score_ok文件写入成功!

##路径动态拼接问题

const fs = require('fs')

fs.readFile('./files/1.txt','utf-8',function(err,dataStr) {

if(err){

return console.log('读取文件失败!'+err.message)

}

console.log('读取文件成功!'+dataStr)

})

PS C:\Users\HAO21\Desktop\nodejs_basic> node .\04.路径动态拼接.js

读取文件成功!Hello Node.js!!!

PS C:\Users\HAO21\Desktop\nodejs_basic> cd ..

PS C:\Users\HAO21\Desktop> node .\nodejs_basic\04.路径动态拼接.js

读取文件失败!ENOENT: no such file or directory, open 'C:\Users\HAO21\Desktop\files\1.txt'

#解决

const fs = require('fs')

// fs.readFile('./files/1.txt','utf-8',function(err,dataStr) {

// if(err){

// return console.log('读取文件失败!'+err.message)

// }

// console.log('读取文件成功!'+dataStr)

// })

// 方案1:使用绝对路径

// fs.readFile('C:\\Users\\HAO21\\Desktop\\nodejs_basic\\files\\1.txt','utf-8',function(err,dataStr) {

// if(err){

// return console.log('读取文件失败!'+err.message)

// }

// console.log('读取文件成功!'+dataStr)

// })

// 方案2:使用__dirname,__dirname表示当前文件所处的目录

fs.readFile(__dirname+'/files/1.txt','utf-8',function(err,dataStr) {

if(err){

return console.log('读取文件失败!'+err.message)

}

console.log('读取文件成功!'+dataStr)

})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值