切换主题
一、fs文件系统模块
1、读取指定文件中的内容
1、fs.readFile()的语法格式
js
fs.readFile(path[,option],callback)
- 参数1:必选参数,字符串,表示文件的路径
- 参数2:可选参数,表示以什么编码格式来读取文件
- 参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果
例:
js
const fs=require('fs')
fs.readFile('./file/11.txt','utf8',function(err,dataStr){
//读取失败err为错误对象,读取成功为null
console.log(err)
console.log('-----')
console.log(dataStr)//读取失败为undefined
})
2、判断文件是否读取成功
js
const fs=require('fs');
fs.readFile('./file/1.txt','utf8',function(err,result){
if(err){
return console.log('文件读取失败!'+err.message)
}
console.log('文件读取成功,内容是:'+result)
})
2、向指定文件中写入内容
1、fs.writeFile()的语法格式
js
fs.writeFile(path,data,[,option],callback)
- 参数1:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径
- 参数2:必选参数,表示写入的内容
- 参数3:可选参数,表示以什么格式写入文件内容,默认值是utf8
- 参数4:必选参数,文件写入后完成的回调函数
js
const fs=require('fs')
fs.writeFile('./file/2.txt','hello Node.js!','utf8',function(err){
//如果写入成功,err的值为null,否则为错误对象
console.log(err)
})
2、判断文件是否写入成功
js
const fs=require('fs');
fs.writeFile('./file/1.txt','hello Node.js!','utf8',function(err){
if(err){
return console.log('文件写入失败!'+err.message)
}
console.log('文件写入成功!')
})
3、路径动态拼接的问题
bug:在使用fs模块操作文件,如果提供的操作是以./或../开头的相对路径时,很容易出现路径动态拼接错误的问题
原因:代码在运行的时候,会以执行node命令时所处的目录,动态拼接出被操作文件的完整路径
解决方案:在使用fs模块操作文件时,直接提供完整的路径,不要提供./或../开头的相对路径,从而防止路径动态拼接的问题
js
//不要使用./或../这样的相对路径
fs.readFile('./file/1.txt','utf8',function(err,result){
if(err){
return console.log('文件读取失败!'+err.message)
}
console.log('文件读取成功,内容是:'+result)
})
//__dirname表示当前文件所处的目录
fs.readFile(__dirname+'/file/1.txt','utf8',function(err,result){
if(err){
return console.log('文件读取失败!'+err.message)
}
console.log('文件读取成功,内容是:'+result)
})