跳至主要內容

1.11 文件系统模块 🎉

刘春龙...大约 2 分钟NODEJSNODE后端nodejs

1.11 文件系统模块 🎉

fs 模块提供了许多非常实用的函数来访问文件系统并与文件系统进行交互。

文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()

var fs = require("fs");
// 异步读取
fs.readFile('./aaindex.txt', function (err, data) {
    if (err) {
        return console.error(err);
    }
    console.log("异步读取: " + data.toString());
});
// 同步读取
var data = fs.readFileSync('./aaindex.txt');
console.log("同步读取: " + data.toString());
console.log("程序执行完毕。");
/*
运行结果:
同步读取: 123123456456123123456456
程序执行完毕。
异步读取: 123123456456123123456456
*/

提示

推荐大家使用异步操作的方式进行处理文件,这样不会造成程序的阻塞

打开写入文件 💎

打开文件 fs.open(path, flags[, mode], callback)

Flag描述
r以读取模式打开文件。如果文件不存在抛出异常。
r+以读写模式打开文件。如果文件不存在抛出异常。
rs以同步的方式读取文件。
rs+以同步的方式读取和写入文件。
w以写入模式打开文件,如果文件不存在则创建。
wx类似 'w',但是如果文件路径存在,则文件写入失败。
w+以读写模式打开文件,如果文件不存在则创建。
wx+类似 'w+', 但是如果文件路径存在,则文件读写失败。
a以追加模式打开文件,如果文件不存在则创建。
ax类似 'a', 但是如果文件路径存在,则文件追加失败。
a+以读写追加模式打开文件,如果文件不存在则创建。
ax+类似 'a+', 但是如果文件路径存在,则文件读取追加失败。
const fs = require('fs')
fs.open('./aaindex.txt', 'a+', function (err, fd) {
    if (err) {
        return console.error(err);
    }
    console.log(fd);
    fs.writeFile(fd, '百战程序员', (err) => {
        if (err) {
            return console.log(err)
        }
        console.log('写入完成')
    })
});

查看删除文件 💎

查看文件 fs.stat(path, callback)

删除文件 fs.unlink(path, callback)

var fs = require("fs");
fs.stat('./aaindex.txt', function (err, stats) {
    if (err) {
        return console.error(err);
    }
    console.log(stats);
    // 检测文件类型
    console.log("是否为文件 ? " + stats.isFile());
    console.log("是否为目录 ? " + stats.isDirectory());
});
fs.unlink('./aaindex.txt', function (err) {
    if (err) {
        return console.error(err);
    }
    console.log("文件删除成功!");
});

目录操作 💎

创建目录 fs.mkdir(path[, options], callback)

var fs = require("fs");
fs.mkdir("./aaa/test", { recursive: true }, function (err) {
    if (err) {
        return console.error(err);
    }
    console.log("目录创建成功。");
});

查看目录 fs.readdir(path, callback)

var fs = require("fs");
console.log("查看 /aaa 目录");
fs.readdir("./aaa", function (err, files) {
    if (err) {
        return console.error(err);
    }
    console.log(files);
});

删除目录 fs.rmdir(path, callback)

var fs = require("fs");
console.log("准备删除目录 ./bbb");
fs.rmdir("./bbb", function (err) {
    if (err) {
        return console.log(err);
    }
    console.log("成功删除目录 ./bbb");
});

注意

删除目录,如果目录下面有下一级则报错,解决方式如下:

var fs = require("fs");
console.log("准备删除目录 ./aaa");
fs.rm("./aaa", { recursive: true }, function (err) {
    if (err) {
        return console.log(err);
    }
    console.log("成功删除目录 ./aaa");
});
上次编辑于:
贡献者: 刘春龙
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.7