node.js之文件操作

本文介绍了Node.js的fs模块,包括异步和同步方式的文件写入、追加内容、流式写入方法,文件的读取、重命名及删除操作。重点讲解了不同写入方式的用法,如appendFile、writeFile及createWriteStream,以及readFile和createReadStream用于读取文件。同时,文章提到了错误处理机制和文件管理的基本步骤。
摘要由CSDN通过智能技术生成

1. 同步异步写入

fs模块可以实现与硬盘的交互,例如:文件的创建、删除、重命名、移动,还有文件内容的写入、读取,以及文件夹的相关操作

//异步写入
const fs=require('fs');
fs.writeFile('./file.txt','this fs File',err=>{
//err的值  写入失败:错误对象;写入成功:null
if(err){
	console.log('写入失败');
	return;
}
console.log("写入成功");
});  //写入文件,如果文件不存在则会自动创建文件
//同步写入
const fs=require('fs');
fs.writeFileSync("./data.txt", "test");  //文件名,文件内容

2. 文件追加内容写入

//异步
fs.appendFile("./data.txt", "文件追加写入", (err) => {
  // err的值  写入失败:错误对象;写入成功:null
  if (err) {
    console.log("写入失败");
    return;
  }
  console.log("文件追加写入成功");
});

//同步
fs.appendFileSync("./data.txt", "文件追加写入成功");  //文件名,文件内容
fs.writeFile('./file.txt','追加内容',{flag:'a'},err=>{
//err的值  写入失败:错误对象;写入成功:null
if(err){
	console.log('写入失败');
	return;
}
console.log("写入成功");
});

3. 流式写入(适合写入频次较高的场景)

const ws = fs.createWriteStream("./stream.txt");
ws.write("标题一\r\n");
ws.write("标题二\r\n");
ws.write("标题三\r\n");
ws.write("标题四\r\n");
//\r\n换行
ws.close();

4 . 文件读取

//语法:文件路径,选项配置(可选),回调函数
//异步
fs.readFile('./file.txt',(err,data)=>{
//err的值  读取失败:错误对象;读取成功:null
if(err){
	console.log('读取失败');
	return;
}
console.log("读取成功",data);//data是个buffer 使用data.toString()转成字符串
});

//同步
fs.readFileSync("./data.txt"); 
console.log("读取内容",data.toString());
//文件流式读取
const rs = fs.createReadStream("../测试.mp4");
rs.on("data", (chunk) => {
  console.log(chunk);
});

rs.on("end", () => {
  console.log("读取完成");
});

5. 文件重命名

//同步  语法:fs.rename(oldPath, newPath, callback);
fs.rename("./data.txt", "./data-1.txt", (err) => {
  // err的值  重命名失败:错误对象;重命名成功:null
  if (err) {
    console.log("重命名失败");
    return;
  }
  console.log("文件重命名成功");
});
//异步  语法:fs.renameSync(oldPath, newPath, callback);

6.删除

//异步  语法:	fs.unlink(path, callback)或者fs.rm(path, callback)

fs.unlink("./data.txt",  (err) => {
  // err的值  删除失败:错误对象;删除成功:null
  if (err) {
    console.log("删除失败");
    return;
  }
  console.log("删除成功");
});
//同步	语法:fs.unlinkSync(path)或者fs.rmSync(path)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值