node.js 文件读取,写入,添加,路径问题总结

本文总结了Node.js中文件操作的关键点,包括使用fs模块读取和写入文件,以及如何处理文件路径问题。fs.readFile用于读取文件,fs.writeFile用于写入文件,fs.appendFile用于追加内容,fs.copyFile用于拷贝文件。同时强调了使用__dirname解决路径问题和fs.readdir读取目录中所有文件名的重要性。还提到了path模块的几个关键方法,如path.dirname、path.basename和path.extname,用于处理和提取文件路径信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一点:读取文件

//node组成的三部分,ECMAScript核心+全局成员+核心api成员
//访问核心成员,直接使用require(‘核心成员的名称’),能够导入并使用这些核心成员
const fs = require(‘fs’)
//fs.readFile()
//fs.readFile有三个参数
//1.表示读取的文件的路径
//2.编码格式
//3,当文件读取完成,调用callback回调函数来处理结果
//第一个参数是err对象,err不为null,错误
//第二个参数才是读取成功的结果
fs.readFile(“./files/1.txt”,function(err,data){
console.log(err);
console.log(data);
if(err){
return console.log(“读取文件失败:”+err.message)
}else{
console.log(“读取文件成功:”+data)
}

})

第二点:写入文件

//1.导入fs文件操作模块
//2、调用fs。writeFile写入文件
//1、路径字符串,表示把文件的内容,写入到哪个文件中
//2、要写入的数据,可以给定一个字符串
//3、可选参数,表示要以什么格式写入文件内容,默认utf-8de格式
//文件写完之后的callback回调函数
//在回调函数中,只有一个形参err错误对象
//const fs = require(‘fs’);
//fs.writeFile(‘./files/2.txt’,’1357’,(err)=>{
//如果文件写入失败,则报错
// if (err) return console.log(‘写入文件失败!’ + err.message)
// console.log(‘文件写入成功!’)

//})

注意:文件写入data参数可以以变量形式传递,若内容很多,可以
var a = ‘11111111’;
fs.writeFile(‘./files/2.txt’,a,(err)=>{
}
添加:
先读取,再添加!
fs.readFile(“路径”,“编码”,(err,data)=>{
let atr = data+”555”;
fs.writeFile(“路径”,str,(err)=>{
console。log(err)
}
第三点:追加文件

追加一个路径不存在的文件,会创建并添加内容
//追加文件
const fs = require(“fs”);
//参数:
//路径,追加内容,编码格式,追加失败的回调函数,形参err
fs.appendFile(“./files/2.txt”,”\n246810”,(err)=>{
if (err) return console.log(‘追加文件失败!’ + err.message)
console.log(‘文件写入成功!’)
})

拷贝文件:
const fs = require(“fs”);
fs.copyFile(__dirname+”/files/2.txt”,__dirname+”/files/3-copy.txt”,(err)=>{
if(err) return console.log(“拷贝失败”+err.message);
console.log(“拷贝成功”);

})
拷贝文件,注意文件夹路径
__dirname 指向当前文件

第四点:
文件路径的问题
使用相对路径很容易出现问题
推荐使用 node 中提供的 __dirname 来解决 fs 模块操作文件时候的路径问题
fs.readFile(__dirname+”路径”,……)

//–filename 表示当前这个文件的完整路径,路径中包含了文件名
–dirname表示当前这个文件执行的时候,所处的根目录。只代表一层目录
读取指定目录中所有文件的名称 fs.readdir

path模块的其他属性或者方法
const path = require(‘path’)
var str = ‘c:/a/b/c/1.txt’;
console.log(path.dirname(str));获取文件所在的路径

console.log(path.basename(str));获取文件名称

console.log(path.extname(str));(常用)获取文件的扩展名
只要设计到路径拼接,一定要使用 path.join() 方法
fs.readFile(path.join(__dirname, ‘files/1.txt’), ‘utf8’, (err, dataStr) => {
if (err) return console.log(err.message)
console.log(dataStr)
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值