Nodejs:Fs文件管理模块

一、引入模块

nodejs中都是通过require来引入模块的

const fs = require("fs" )

二、模块中文件的操作方法

fs中包含的方法一般都有两种使用方法

  1. 异步执行,需要用回调函数来接收返回值
  2. 使用Sync后缀异步变同步,可以直接使用变量接收返回值

2.1 文件读取 readFile

	//使用公式
	//fs.readFile("读取文件路径","读取字符集",callback(err,data));
	//当读取成功时err的值为空
	
	//第一种使用方式
	fs.readFile("./a.text","utf8",(err,data)=>{
		console.log(err);
		console.log(data)
	});
	//第二种使用方式
	let data = fs.readFileSync("./a.text","utf8");

2.2 写入文件 writeFile

	//使用公式
	//fs.writeFile("文件路径","写入内容",callback(err));
	//当写入文件路径文件不存在时会自动创建新文件,当文件存在且有内容时会覆盖原先的内容

	fs.writeFile("./a.text","hellow word",err=>{
		console.log(err);
	})

2.2 追加文件数据 appendFile

	//使用公式
	//fs.appendFile("文件路径","追加的数据",callback(err));
	//当写入文件路径文件不存在时会自动创建新文件,当文件存在且有内容时会从后面追加新数据

	fs.writeFile("./a.text","hellow word",err=>{
		console.log(err);
	})

2.2 删除文件 unlink

	//使用公式
	//fs.unlink("文件路径",callback(err));

	fs.unlink("./a.text",err=>{
		console.log(err);
	})

2.2 重命名 rename

	//使用公式
	//fs.rename("文件路径","新的文件名字",callback(err));
	//新文件名也要加上路径

	fs.writeFile("../a.text","../b.text",err=>{
		console.log(err);
	})

2.2 写入流 createWriteStream

	//使用公式
	//let ws = fs.createWriteStream("文件路径");
	//ws.write("要写入的字符串");
	//ws.end(); 结束
	//ws.on("finish",()=>{}); 完成时执行
	//跟writeFile一样会覆盖之前的内容

	//制作一个多次写入的写入流
	let str = "hellow word";
	let ws = fs.createWriterStream("./a.text");
	for(let i = 0 ; i < 100 ; i++){
		ws.write(str);
	}
	ws.end();
	ws.on("finish",()=>{
		console.log("写入完成");
	})

2.2 读取流 createReadStream

	let str = "";
	let rs = fs.createReadStream("./a.text");
	rs.on("data",(dataStr)=>{
		re += dataStr;
	})
	rs.on("end",()=>{
		console.log("读取完成",str);
	})
	ws.on("error",(err)=>{
		console.log(err);
	})

2.3 管道流 pipe

	//管道流就是读取流进行读取写入流进行写入
	let rs = fs.createReadStream("./a.text"); //读取流
	let ws = fs.createWriteStream("./b.text");  //写入流
	rs.pipe(ws);

三、模块中文件夹的操作方法

3.1 创建文件夹 mkdir

	//使用公式
	//fs.mkdir("创建文件的目录",callback(err));

	fs.mkdir("./a",err=>{
		console.log(err);
	})

3.2 检测是文件夹还是文件 stat

	fs.stat("文件或文件夹路径",callback(err,stats){
		if(stats.isFile()){
			console.log("这是一个文件");
		}else if(stats.isDirectory()){
			console.log("这是一个文件夹");
		}
	})

3.3 删除文件夹 rmdir

	//注意:该方法只能删除空文件夹
	fs.rmdir("文件夹路径",callback(err){
		console.log("删除成功");
	})

3.4 读取文件夹 readdir()

	fs.readdir("文件夹路径",callback(err,files){
		console.log(files);
	})

四、注意

上述方法都可以通过在方法末尾添加Sync来将原本是异步的方法修改为同步,并且直接返回得到的数据,参考2.1的第二种使用方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值