文件 I/O 是由简单封装的标准 POSIX 函数提供。所有的方法都有异步和同步的形式。
fs 的一些 API:
API | 含义 |
---|---|
watch | 监听文件 |
mkdir | 创建目录 |
rmdir | 删除目录 |
readdir | 读取目录 |
writeFile | 写入文件 |
readFile | 读取文件 |
stat | 文件状态 |
rename | 重命名 |
unlink | 删除文件 |
还有:readFileSync 同步读、writeFileSync 同步写…
用几个 API 写一个例子:在当前目录下创建 fs-dir,然后在fs-dir里面创建文件 file-test.txt,并写上 hello, write file,然后读取文件 file-test.txt 的内容,然后修改 file-test.txt 文件名为 file-testX.txt
const fs = require('fs');
let dir = 'fs-dir';
createDir(dir).then(() => {
console.log(`目录 ${dir} 创建成功!`)
return writeFile(`${__dirname}/${dir}/file-test.txt`, 'hello, write file');
}).then(() => {
console.log(`文件 ${__dirname}/${dir}/file-test.txt 写入成功!`)
return readFile(`${__dirname}/${dir}/file-test.txt`);
}).then(data => {
console.log(`文件 ${__dirname}/${dir}/file-test.txt 读取成功,内容是:${data.toString()}`)
return reName(`${__dirname}/${dir}/file-test.txt`, `${__dirname}/${dir}/file-testX.txt`);
}).then((data) => {
console.log(`文件 ${__dirname}/${dir}/file-test.txt 重命名成功!`)
}).catch(err => {
throw err;
});
function createDir (dirName) {
return new Promise((resolve, reject) => {
fs.mkdir(dirName, (err, data) => {
if(err) reject(err);
resolve(data);
})
})
}
function writeFile(fileName, content) {
return new Promise((resolve, reject) => {
fs.writeFile(fileName, content, (err, data) => {
if(err) reject(err);
resolve(data);
})
})
}
function readFile(fileName) {
return new Promise((resolve, reject) => {
fs.readFile(fileName, (err, data) => {
if(err) reject(err);
resolve(data);
})
})
}
function reName(fileName, newFileName) {
return new Promise((resolve, reject) => {
fs.rename(fileName, newFileName, (err, data) => {
if(err) reject(err);
resolve(data);
})
})
}
运行 node fs.js: