Node.js 异步读取文件

示例

使用文件系统模块执行所有文件操作:

const fs = require('fs');


带编码

在此示例中,hello.txt从目录中读取/tmp。此操作将在后台完成,并且在完成或失败时发生回调:

fs.readFile('/tmp/hello.txt', { encoding: 'utf8' }, (err, content) => {
  // 如果发生错误,请输出并返回
  if(err) return console.error(err);

  // 没有发生错误,内容为字符串
  console.log(content);
});

没有编码

binary.txt从后台异步读取当前目录中的二进制文件。请注意,我们没有设置'encoding'选项-这样可以防止Node.js将内容解码为字符串:

fs.readFile('binary', (err, binaryContent) => {
  // 如果发生错误,请输出并返回
  if(err) return console.error(err);

  // 没有错误发生,内容是一个缓冲区,将其输出到
  // 十六进制表示。
  console.log(content.toString('hex'));
});

相对路径

请记住,通常情况下,您的脚本可以在任意当前工作目录下运行。要寻址相对于当前脚本的文件,请使用__dirname或__filename:

fs.readFile(path.resolve(__dirname, 'someFile'), (err, binaryContent) => {
  //其余功能
}