File System 笔记

Node.js 2017-11-13

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 的实例

还有好多,我就不写了。

写了一点点的demo

参考资料


本文由 阿涛 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论