File System
File System 是文件的读写操作。这个模块是由 标准的POSIX
封装形成的。怎么使用,直接导入该模块: require('fs')
大部分方法都有两种,异步执行和同步执行。
读取文件
- fs.readFile('file'[,'options'],'callback');
- fs.readFileSync('file'[,'options']);
const fs = require('fs');
fs.readFile('./readme.md', 'utf-8', (err, data) => {
if (err) {
throw err;
}
console.log(data);
})
console.log(fs.readFileSync('./readme.md', 'utf8'));
上面那段代码是都是读取文件的方法,只是执行方式不一样,前者为异步执行所以有回调函数(callback),后者则为同步执行。
readFile()
第一个必要参数 file 是文件的路径,可以是相对路径或绝对路径。相对路径的话,起始点是当前进程所在路径(process.cwd()
),而不是当前脚本所在路径(__dirname
)。第二个必要参数是读取文件完成后的回调函数,该回到函数有两个参数,第一个为发生错误是的错误对象,第二个则是文件内容的Buffer
实例。readFileSync()
则没有回调函数,该方法的返回值是文件内容的Buffer
实例,若读取文件时发生错误了,则直接抛出错误。-
可选项
options
:-
encoding
: 默认为 null -
flag
: 默认为 r
-
写入文件
- fs.writeFile('file'[,'options'],'callback');
- fs.writeFileSync('file'[,'options']);
写入文件跟读取文件差不多。
新建文件夹
mkdir(path[, mode], callback)
mode
: 默认为 0o777
判断是文件还是目录
- fs.stat(path, callback)
- fs.statSync(path)
const fs = require('fs');
fs.stat('./readme.md', (err, stats) => {
if (stats.isFile()) {
console.log('file')
} else if (stats.isDirectory()){
console.log('directory');
}
})
let myStats = fs.statSync('./readme.md'); // myStats 是 fs.Stats 的实例
还有好多,我就不写了。