fs.createReadStream(path[ options]) - 这些选项是什么?

fs.createReadStream(path[, options]) - What are those options?

根据 Node 的 v6.10.2 API - 选项是具有以下默认值的对象或字符串:

{
flags: 'r',
encoding: null,
fd: null,
mode: 0o666,
autoClose: true
}

但我看到 highWaterMark 属性 被用来设置缓冲区大小。但是 API 并没有把它放在选项上。所以我想知道是否还有更多 API 没有写在文档上的选项。如果是这样,我在哪里可以找到完整的选项列表?

而API没有谈论标志,所以我想知道在这种情况下标志是什么以及

之间有什么区别
flags: r
flags: w
flags: r+

我试图找到这些答案,但没有找到任何有用的信息。如果有人帮助我理解这个话题,我将不胜感激。 谢谢。

在撰写此答案时,文档中似乎仍然缺少流上下文中的解释,因此不清楚可读流有哪些选项。据我所知,这些标志很可能与为其他 fs 操作指定的标志相同,例如 fs.open。

来自文档:

https://nodejs.org/api/fs.html#fs_fs_open_path_flags_mode_callback

r - 打开文件进行阅读。文件不存在则异常

r+ - 打开文件进行读写。文件不存在则异常

rs+ - 打开文件以同步模式读写。指示操作系统绕过本地文件系统缓存。

这主要用于在 NFS 装载上打开文件,因为它允许跳过可能陈旧的本地缓存。它对 I/O 性能有非常实际的影响,因此除非需要,否则不建议使用此标志。

w - 打开文件进行写入。创建文件(如果不存在)或截断文件(如果存在)。

wx - 类似于 'w' 但如果路径存在则失败。

w+ - 打开文件进行读写。创建文件(如果不存在)或截断文件(如果存在)。

wx+ - 类似于 'w+' 但如果路径存在则失败。

a - 打开文件进行追加。如果文件不存在,则创建该文件。

ax - 类似于 'a' 但如果路径存在则失败。

a+ - 打开文件进行读取和追加。如果文件不存在,则创建该文件。

ax+ - 类似于 'a+' 但如果路径存在则失败。