当前位置: 首页 > news >正文

fs文件系统模块

1、fs模块式Node.js官方提供的,用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。
fs.readFile()方法,用来读取指定文件中的内容;
fs.writeFile()方法,用来向指定的文件中写入内容。
如果要在JS代码中,使用fs模块来操作文件,则需要使用如下的方式先导入它:
const fs = require ('fs')
2、如何读取指定文件中的内容
fs.readFile()方法,可以读取指定文件中的内容,语法格式如下:
fs.readFile(path[,options],callback)
被中括号包起来的参数就是可选参数项,没有被包起来的,是必选参数。则path和callback是必选参数,options是可选参数。
参数解读:
path:必选参数,字符串,表示文件的路径。
options:可选参数,表示以什么编码格式来读取文件。
callback:必选参数,文件读取完成后,通过回调函数拿到读取结果。
3、fs.readFile()的示例代码
以utf8的编码格式,读取指定文件的内容,并打印err和dataStr的值:

//1、导入fs模块,来操作文件
const fs = require('fs')
//2、调用fs.readFile()方法读取文件
//参数1:读取文件的存放路径
//参数2:读取文件时候采用的编码格式,一般默认指定utf8
//参数3:回调函数,可以拿到读取失败err和成功的结果dataStr
fs.readFile('./files/1.txt','utf8',function(err,dataStr){//打印失败的结果//如果读取成功,则err的值为null//如果读取失败,则err的值为错误对象,dataStr的值为undefinedconsole.log(err)console.log('--------')//打印成功的结果console.log(dataStr)
})

4、判断文件是否读取成功,可以判断err对象是否为null,从而知晓文件读取结果。

const fs = require('fs')
fs.readFile('./files/1.txt','utf8',function(err,dataStr){if(err) {return console.log('读取文件失败'+err.message)}console.log('读取文件成功!'+dataStr)
})

5、向指定的文件中写入内容
fs.writeFile()的语法格式
使用fs.writeFile()方法,可以向指定的文件中写入内容,语法格式如下:
fs.writeFile(file,data[,options],callback)
file:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径。
data:必选参数,表示要写入的内容。
options:可选参数,表示以什么格式写入文件内容,默认值是utf8。
callback:必选参数,文件写入完成后的必选参数。

//1、导入fs文件系统模块
const fs = require('fs')
//2、调用fs.writeFile()方法,写入文件的内容
//参数1:表示文件的存放路径
//参数2:表示要写入的内容 
//参数3:回调函数
fs.writeFile('./files/2.txt', 'abcd', function(err){//如果文件写入成功,则err的值等于null//如果改一下写入路径,就会写入失败,如果文件写入失败,则err的值等于错误对象console.log(err)if(err){return console.log('文件写入失败!'+err.message)}console.log('文件写入成功!')
})

6、练习--考试成绩整理
使用fs文件系统模块,将素材目录下 成绩.txt 文件中的考试数据,整理到 成绩-ok.txt文件中。
整理前:
小红=99 小白=100 小黄=70 小黑=66 小绿=88
整理后:
小红:99
小白:100
小黄:70
小黑:66
小绿:88

核心实现步骤:
①导入需要的fs文件系统模块
②使用 fs.readFile() 方法,读取素材目录下的 成绩.txt 文件
③判断文件是否读取失败
④文件读取成功后,处理成绩数据
⑤将处理完的成绩数据,调用 fs.writeFile()方法,写入 到新文件成绩-ok.txt 中。

//1、导入fs模块
const fs =  require('fs')
//2、调用fs.readFile()读取文件的内容
fs.readFile('./素材/成绩.txt', 'utf8', function(err, dataStr){
//判断是否读取成功
if(err){return console.log('读取文件失败'+err.message)
}
console.log('读取文件成功!'+dataStr)
//先把成绩的数据 ,按照空格进行分割
const arrOld = dataStr.split(' ')
//注意split(' ')中间一定要加空格,如果不加就会把字符串按单个字符拆分,如果加空格,就会按照空格拆分。
console.log(arrOld)
//循环分割后的数组,对每一项数据,进行字符串的替换操作
const arrNew = []
arrOld.forEach(item => {arrNew.push(item.replace('=',':'))
})
//把新数组中的每一项,进行合并,得到一个新的字符串
const newStr = arrNew.join('\r\n')
console.log(newStr)
})
http://www.jsqmd.com/news/421786/

相关文章:

  • Azure DevOps:移除TFVC中过时的签入策略
  • 前端组件库开发实践:从零到发布
  • 滚动锁定:用户向上翻看历史时,如何阻止 AI 新消息把它“顶”下去?
  • 深度测评:哪个执业医师课程通过率最高? - 医考机构品牌测评专家
  • 2011-2024年各省、地级市公众环境关注度数据
  • 开源一个 React 股票 K 线图组件,传个股票代码就能画图
  • 为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 ️
  • 2026.2.28 模拟赛
  • 基于C-V2X的协同感知、协同预测与协同规划:标准、现状与未来展望
  • 7. STL简介
  • 复合赋值运算符+字符串拼接优先级
  • 推荐一个口腔执业医师课程 - 医考机构品牌测评专家
  • 2026西安普内科副主任医师考试用书推荐, 高分考生亲测:这些教材成功上岸 - 医考机构品牌测评专家
  • 大盘风险控制策略分析报告 - 2026年02月28日
  • 指月之手——活在当下的意义行动
  • 7864838
  • 468513
  • C# 里的 dynamic 或者 object 在 C++ 里的对应
  • 在文本行内加个倒计时(循环)
  • 二进制部署 kafka 4.20 并开启认证
  • 论文写作神器:免费大纲,降AI率,轻松通过知网
  • WPForms 与 OptinMonster 结合:如何构建功能强大的浮动联系表单
  • 学术写作不求人:2026论文“去AI化”与降重软件盘点
  • 岩石的剪胀性
  • 收藏!揭秘Deepseek爆火背后的AI力量,企业如何借力实现数字化转型?
  • 2026年硕士论文攻略:从初稿生成到降AI率的工具合集
  • 别等被AI甩下!程序员收藏:AI转型不慌,这5大工具让你效率起飞!
  • 2026年AI趋势:落地为王!省钱、解决真问题才是硬道理,收藏看懂未来!
  • 最佳少儿编程APP推荐:为孩子选择合适的编程学习工具 - 品牌测评鉴赏家
  • 研究生论文写作神器:免费生成大纲,一键降AI率!