简单看一遍fs文件系统模块

什么是fs文件系统模块

fs模块是Node.js提供的用来操作文件的模块
功能就是操作文件这么简单
掌握知识点
	fs.readFile()方法,读取指定文件中的内容
	fs.writeFile()方法,向指定文件中写入内容
了解方法名+aysnc后异步调用

学习知识点

  • 掌握知识点:
    简单文件读写
    – fs.readFile()方法,读取指定文件中的内容
    – fs.writeFile()方法,向指定文件中写入内容
    流式文件读写
    –fs.createReadSteam(),创建读出流
    –fs.createWriteStream(),创建写入流
  • 了解知识点:
    方法名+Sync后 同步调用

使用步骤

简单文件读写

  • 第一步引入fs模块

    fs是node内置的模块,没有路径也没有.js后缀

const fs = require('fs');
  • 第二步调用fs模块的方法实现功能
//读取指定文件的内容
	/*语法格式fs.readFile(path[,options],callback)
	path			字符串,文件路径
	options可选参数	
		encoding	默认utf8
		mode		权限	默认0o666	一般不会改
		flag		模式	默认'w' 写入	一般不会改
	callback		文件读取后回调函数处理结果
	*/
fs.readFile('./0.js','utf8',function(err,data){
	//err指读取失败的结果,data为undefined

	//data指读取成功的结果,err为null
});

//指定文件中写入内容
	/*语法格式fs.writeFile(file,data[,options],callback)
	file			字符串,文件路径
	data			写入的内容
	options可选参数	
		encoding	默认utf8
		mode		权限	默认0o666	一般不会改
		flag		模式	默认'w' 写入	一般不会改
	callback		文件读取后回调函数处理结果
	*/
fs.writeFile('./1.js','写入的内容','utf8',function(err,data){
	//err指读取失败的结果,data为undefined

	//data指读取成功的结果,err为null
});

了解内容

readFile()和writeFile()两个方法其实是对open()方法和read()/write()方法的封装,一般情况下不会去改权限和模式,如果要改可以参考此文档底部模式的表格

fs模块中所有操作都有两种形式可以选择,同步和异步
同步文件系统也就是操作不完成,不会向下执行,会导致阻塞
异步文件系统操作完成时通过回调函数将结果返回,不会阻塞

/*唯一区别是同步方式结果是通过返回值查看
	如果使用过程中指定encoding选项,则返回字符串,否则返回buffer*/

//读取文件
let data = fs.readFileSync();

//向文件中写入
let data = fs.wirteFileSync();

流式文件读写

简单文件写入,写入大文件时可能会造成内存溢出等问题

  • 第一步
//引入fs模块
const fs = require('fs');

//创建可写流
	//fs.createWriteStream(path[,options])
let ws = fs.createWriteStream('./2.js');

//创建可读流
	//fs.createReadStream(path[,options])
let rs = fs.createReadStream('./3.js');
  • 第二步,一次或多次读取/写入内容
//查看流是否打开
ws.once("open",function(){
	console.log("已开始");
});
rs.once("open",functon(){
	console.log("已开始");
})

//查看流是否关闭
ws.once("close",function(){
	console.log("已关闭");
});
rs.once("close",function(){
	console.log("已关闭");
});

//写入
ws.write("写入的内容123");
ws.write("写入的内容456");
ws.write("写入的内容789");

//关闭,不能用close
ws.end();

//读取时必须为可读流绑定一个data事件,自动开始读和结束
rs.on("data",fucntion(data){
	//如果文件打开成功才执行,因此不考虑失败的情况
	console.log(data);
	//查看分几次读取
	console.log(data.length);
});

//边读边写时,就不使用data事件,使用pipe事件
//pipe()可以将可读流中的内容直接输出到可写流中
//rs.pipe(ws);

常用模式

模式说明
r读取文件,文件不存在则出现异常
r+读写文件,文件不存在则出现异常
w打开文件用于写操作,文件不存在则创建,存在则截断
wx打开文件用于写操作,文件存在则打开失败
w+打开文件用于读写操作,文件不存在则创建,存在则截断
a打开文件用于追加,文件不存在则创建
a+打开文件用于读取和追加,文件不存在则创建
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值