• path {string|Buffer|URL|integer} 文件名或文件描述符。
    • options {Object|string}
      • encoding {string|null} 默认值: null
      • flag {string} 参见[文件系统 flag 的支持][support of file system flags]。默认值: 'r'
    • callback {Function}
      • err {Error}
      • data {string|Buffer}

    异步地读取文件的全部内容。

    1. fs.readFile('文件名', (err, data) => {
    2. if (err) throw err;
    3. console.log(data);
    4. });

    回调会传入两个参数 (err, data),其中 data 是文件的内容。

    如果没有指定字符编码,则返回原始的 buffer。

    如果 options 是字符串,则它指定字符编码:

    1. fs.readFile('文件名', 'utf8', callback);

    当路径是目录时,则 fs.readFile() 和 [fs.readFileSync()] 的行为是特定于平台的。 在 macOS、Linux 和 Windows 上,会返回错误。 在 FreeBSD 上,会返回目录内容的表示。

    1. // 在 macOS、Linux 和 Windows 上:
    2. fs.readFile('<目录>', (err, data) => {
    3. // => [Error: EISDIR: illegal operation on a directory, read <目录>]
    4. });
    5. // 在 FreeBSD 上:
    6. fs.readFile('<目录>', (err, data) => {
    7. // => null, <data>
    8. });

    fs.readFile() 函数会缓冲整个文件。 若要最小化内存成本,则尽可能选择流式(使用 fs.createReadStream())。