视频链接:黑马程序员Node.js全套入门教程
官方文档:File system Documentation (nodejs.org)
fs模块是Nodejs官方提供的,用来操作文件的模块,它提供了一系列的方法和属性,用来满足用户对文件的操作需求
例如:
fs.readFile()方法,用来读取指定文件中的内容fs.writeFile()方法,用来向指定的文件中写入内容在js文件中,可以使用如下方式导入
const fs = require('fs')
fs.readFile(path[, options], callback)
path:文件路径(必选)options:配置选项,若是字符串则指定编码格式
encoding:编码格式flag:打开方式callback:回调函数(必选)
err:错误信息data:读取的数据,如果未指定编码格式则返回一个 Bufferconst fs = require('fs')
fs.readFile('./test.txt', 'utf8', (err, data) => {
if (err) {
// 文件读取失败
return console.log(err)
}
console.log(data)
})
如果读取成功,则err的值为null,data的值为文件文本内容
如果读取失败,则err的值为错误对象,data的值为undefined
写入文件的时候只能创建文件,不能创建目录
重复调用该方法时候,会用新内容覆盖旧内容
fs.writeFile(file, data[, options], callback)
file:文件路径,必选data:写入内容,必选options:配置选项,包含 encoding, mode, flag;若是字符串则指定编码格式callback:回调函数,必选const fs = require('fs')
fs.writeFile('./files/txt', "文件内容。。。", 'utf8', err => {
if (err) {
// 写入失败
console.log(err)
} else {
console.log("success")
}
})
如果文件写入成功,则err的值为null
如果文件写入失败,则err的值为错误对象
在使用fs模块操作文件的时候,如果提供的操作路径是以./或../开头的相对路径,很容易出现路径动态拼接错误的问题
原因:代码在运行的时候,会以执行node命令时所处的目录,动态拼接处被操作问价的完整目录
解决方案:在使用fs模块操作文件的时候,直接提供完整路径,不要提供./或../开头的相对路径,从而防止动态路径拼接的问题
__direname表示当前文件所处的目录(注意是双下划线)
fs.readFile(__dirname + '/files/test.txt', 'utf8', (err, data) => {
if (err) {
// 文件读取失败
return console.log(err)
}
console.log(data)
})
验证路径是否存在:
fs.exists(path, callback)fs.existsSync(path)获取文件信息:
fs.stat(path, callback)fs.stat(path)删除文件:
fs.unlink(path, callback)fs.unlinkSync(path)列出文件:
fs.readdir(path[,options], callback)fs.readdirSync(path[, options])截断文件:
fs.truncate(path, len, callback)fs.truncateSync(path, len)建立目录:
fs.mkdir(path[, mode], callback)fs.mkdirSync(path[, mode])删除目录:
fs.rmdir(path, callback)fs.rmdirSync(path)重命名文件和目录:
fs.rename(oldPath, newPath, callback)fs.renameSync(oldPath, newPath)监视文件更改:
fs.watchFile(filename[, options], listener)