Node.js fs.readFile

🌙
手机阅读
本文目录结构

Node.js fs.readFile(path[, options], callback)

版本历史

版本 变更
v10.0.0 The callback parameter is no longer optional. Not passing it will throw a TypeError at runtime.
v7.6.0 The path parameter can be a WHATWG URL object using file: protocol. Support is currently still experimental.
v7.0.0 The callback parameter is no longer optional. Not passing it will emit a deprecation warning with id DEP0013.
v5.1.0 The callback will always be called with null as the error parameter in case of success.
v5.0.0 The path parameter can be a file descriptor now.
v0.1.29 新增于: v0.1.29
  • path < string> | < Buffer> | < URL> | < integer> 文件名或文件描述符。
  • options < Object> | < string>
    • encoding < string> | < null> 默认值: null。
    • flag < string> 参阅支持的文件系统标志。默认值: ‘r’。
  • callback < Function>
    • err < Error>
    • data < string> | < Buffer>

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

fs.readFile('/etc/passwd', (err, data) => {
  if (err) throw err;
  console.log(data);
});

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

如果没有指定 encoding,则返回原始的 buffer。

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

fs.readFile('/etc/passwd', 'utf8', callback);

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

// 在 macOS、Linux 和 Windows 上:
fs.readFile('<目录>', (err, data) => {
  // => [Error: EISDIR: illegal operation on a directory, read <目录>]
});

// 在 FreeBSD 上:
fs.readFile('<目录>', (err, data) => {
  // => null, <data>
});

fs.readFile() 函数会缓冲整个文件。 为了最小化内存成本,尽可能通过 fs.createReadStream() 进行流式传输。

文件描述符

  1. 任何指定的文件描述符都必须支持读取。
  2. 如果将文件描述符指定为 path,则不会自动关闭它。
  3. 读数将从当前位置开始。例如,如果文件已经有内容 ‘Hello World’ 并且使用文件描述符读取了六个字节,则使用相同文件描述符调用 fs.readFile() 将返回 ‘World’ 而不是 ‘Hello World’。

更多内容请参考:Node.js fs 文件系统,或者通过 点击对应菜单 进行查看;



AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

目前重心已经放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>