const fs = require('fs');
fs.open('./1.txt', 'w+', 0o666, function (err, fd) {
let data = Buffer.from('数据n');
let task = [];
//我们往文件中循环写入数据
for (ix = 0; ix < 1000; ix++) {
task.push(function () {
return new Promise((resolve, reject) => {
fs.write(fd, data, 0, data.length, null, function (err, written, buffer) {
if (err) {
reject(err);
} else {
resolve(written);
}
});
});
});
}
Promise.all(task.map(fn => fn())).then(value => {
console.log(value);
}, reason => {
console.log(reason);
});
//当们写完数据后,一般会强制刷新缓冲区,让数据写入到文件里,然后关闭文件。
//因为系统为了效率,我们写入的数据通常会放到一个缓冲区中,当缓冲区满了后,系统就一次把数据写到文件。
fs.fsync(fd, function (err) {
console.log(err);
//关闭文件
fs.close(fd, function (err) {
console.log(err);
})
});
});
七、创建目录
const fs = require('fs');
//创建目录,默认情况下不支持递归创建目录
fs.mkdir('./a', function (err) {
console.log(err);
});
//通过设置参数二中的recursive为true,则可以递归创建目录
fs.mkdir('./a/b/c', {'recursive': true}, function (err) {
console.log(err);
});八、删除目录
const fs = require('fs');
//rmdir无法删除非空目录
fs.rmdir('./a', function (err) {
console.log(err);
});九、测试文件或目录是否存在,是否可读,是否可写
const fs = require('fs');
let path = './a';
//判断是否存在
fs.access(path, fs.constants.F_OK, function (err) {
console.log(err ? '不存在' : '存在');
});
//判断是否可读
fs.access(path, fs.constants.R_OK, function (err) {
console.log(err ? '不可读' : '可读');
});
//判断是否可写
fs.access(path, fs.constants.W_OK, function (err) {
console.log(err ? '不可写' : '可写');
});十、读取目录下的所有文件
const fs = require('fs');
const path = require('path');
//读取目录下所有文件
fs.readdir('./a', function (err, files) {
console.log(files);
});
//递归的读取一个目录所有文件
function readDir(dir) {
fs.stat(dir, function (err, stats) {
if (stats.isDirectory()) {
console.log(dir);
fs.readdir(dir, function (err, files) {









