Node.js基本模块

fs

fs模块就是文件系统模块,负责读写文件。nodeJs内置的fs模块提供了异步和同步的方法node

  • 异步读文件
var fs = require('fs');
fs.readFile('sample.txt', 'utf-8', function (err, data) {
    if (err) {
        console.log(err);
    } else {
        console.log(data);
    }
});
复制代码

异步读取时,传入的回调函数接收两个参数,当正常读取时,err参数为nulldata参数为读取到的String。当读取发生错误时,err参数表明一个错误对象,dataundefined。这也是Node.js标准的回调函数:第一个参数表明错误信息,第二个参数表明结果。bash

  • 同步读文件
    除了标准的异步读取模式外,fs也提供相应的同步读取函数。同步读取的函数和异步函数相比,多了一个Sync后缀,而且不接收回调函数,函数直接返回结果。
'use strict';
var fs = require('fs');
var data = fs.readFileSync('sample.txt', 'utf-8');
console.log(data);
复制代码

若是同步读取文件发生错误,则须要用try...catch捕获该错误:异步

try {
    var data = fs.readFileSync('sample.txt', 'utf-8');
    console.log(data);
} catch (err) {
    // 出错了
}
复制代码
  • 异步写文件
    将数据写入文件是经过fs.writeFile()实现的:
'use strict';
var fs = require('fs');
var data = 'Hello, Node.js';
fs.writeFile('output.txt', data, function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log('ok.');
  }
});
复制代码

writeFile()的参数依次为文件名、数据和回调函数。若是传入的数据是String,默认按UTF-8编码写入文本文件,若是传入的参数是Buffer,则写入的是二进制文件。回调函数因为只关心成功与否,所以只须要一个err参数。函数

  • stat
    若是咱们要获取文件大小,建立时间等信息,能够使用fs.stat(),它返回一个Stat对象,能告诉咱们文件或目录的详细信息
'use strict';
var fs = require('fs');
fs.stat('sample.txt', function (err, stat) {
if (err) {
    console.log(err);
} else {
    // 是不是文件:
    console.log('isFile: ' + stat.isFile());
    // 是不是目录:
    console.log('isDirectory: ' + stat.isDirectory());
    if (stat.isFile()) {
        // 文件大小:
        console.log('size: ' + stat.size);
        // 建立时间, Date对象:
        console.log('birth time: ' + stat.birthtime);
        // 修改时间, Date对象:
        console.log('modified time: ' + stat.mtime);
    }
 }
});
复制代码
相关文章
相关标签/搜索