Node.js-fs文件系统模块与常用API
一、什么是fs文件系统模块
Node.js官方提供了fs模块,用来进行文件操作【读取与写入】。
//例如:
fs.readFile()
//用来读取指定文件中的内容
fs.writeFile()
//用来向指定文件中写入内容
二、如何使用fs模块与常用API
第一步:导入fs模块
const fs = require('fs')
//定义一个fs常量去接收,之后就可以使用fs模块里的方法
//fs模块会在node安装时进行安装
第二步:了解fs模块的方法
1.readFile方法(读取)
接收参数
fs.readFile(path[,options],callback)
//参数1 path:必选参数,字符串类型,表示文件的路径
//参数2 options:可选参数,表示以什么编码格式来读取文件(默认值utf-8)
//参数3 callback:必选参数,文件读取完成后,通过回调函数拿到读取的结果
//callback参数接收2个值 err , dataStr
//当读取成功 err值为null , dataStr值为文件内容
//当读取失败 err值为错误对象 , dataStr值为undefined
例子:
const fs = require('fs')
fs.readFile('./text.txt','utf-8',fuction(err,dataStr){
console.log(err)
console.log('-----')
console.log(dataStr)
})
读取成功结果:
读取失败结果:
**err参数应用:**判断文件是否读取成功
const fs = require ('fs')
fs.readFile('./text.txt' , 'utf-8' , fuction(err,dataStr){
if(err){
//如果err不为null,则证明读取失败,执行return,打印err.message,函数结束
return console.log('文件读取失败'+err.message)
}
//如果err为null,说明读取成功,打印文件内容
console.log('文件读取成功,内容是'+dataStr)
})
2.writeFile方法(写入)
接收参数
fs.writeFileSync(url,data[,options],callback)
//第一个参数 url: 必需参数,文件路径
//第二个参数 data:必需参数,
//第三个参数 options:可选参数,以什么编码格式写入文件(默认值utf-8)
//第四个参数 callback:必需参数,文件写入完成后的回调函数
//callback接收一个参数err
//当读取成功 err值为null
//当读取失败 err值为错误对象
例子:
const fs = require('fs')
let data="正在使用writeFile方法写入文件"
fs.writeFile('./text.txt',data,'utf-8',function (err) {
console.log(err);
})
//注意:如果路径已经存在同名文件会进行覆盖,不存在该路径文件就会创建一个文件。
写入成功结果:
写入失败结果:
**err参数应用:**判断文件是否写入成功
const fs = require('fs')
let data="正在使用writeFile方法写入文件"
fs.writeFile('./text.txt',data,'utf-8',function (err) {
if(err){
//如果err不为null,则证明读取失败,执行return,打印err.message,函数结束
return console.log('文件写入失败'+err.message)
}
//如果err为null,说明读取成功,打印文件内容
console.log('文件写入成功,内容是'+data)
})
3.existsSync方法(判断路径是否存在)
接收参数
fs.existsSync(url)
//url参数:文件路径
//返回值:
//路径存在则返回true
//路径不存在则返回false
路径存在,返回true:
路径不存在,返回false:
4.stat方法(查看指定文件的信息)
接收参数:
fs.stat(url,callback)
//第一个参数 url: 必需参数,文件路径
//第二个参数 callback:必需参数,文件写入完成后的回调函数
//callback接收两个参数err,dataStr
//当读取成功 err值为null , dataStr值为文件内容
//当读取失败 err值为错误对象 , dataStr值为undefined
读取成功结果:
读取失败结果:
5. truncate方法(把文件大小限定在字节)
接收参数:
truncate(url,size,callback)
//第一个参数url :必需参数,文件路径
//第二个参数 size:截断后的文件长度(单位:字节)默认值为0
//第三个参数 callback:必需参数,文件截断后的回调函数
//callback接收一个参数err
//当限定成功 err值为null
//当限定失败 err值为错误对象
截取成功结果:
截取前:
截取后:
截取失败结果:
注意:
1.当被截取文件中存在中文字符时,由于不同文件编码格式不同导致中文字符所占长度不同,可能会出现乱码问题。
2.当被截取文件中长度不足时,会补充null直到文件中长度等于所设置长度。
6.unlink方法(删除指定路径文件)
接收参数:
fs.unlink(url,callback)
//第一个参数url :必需参数,文件路径
//第二个参数 callback:必需参数,文件截断后的回调函数
//callback接收一个参数err
//当删除成功 err值为null
//当删除失败 err值为错误对象
删除成功:
删除失败:
7.rmdir方法(删除空文件夹)必须是空文件夹
接收参数:
fs.rmdir(url,callback)
//第一个参数url :必需参数,文件路径
//第二个参数 callback:必需参数,文件截断后的回调函数
//callback接收一个参数err
//当删除成功 err值为null
//当删除失败 err值为错误对象
删除成功
删除失败(不是空文件夹)
三、其他fs模块API
http://nodejs.cn/api/fs.html#fs_file_system
有问题欢迎大佬指正!