【fs.createWriteStream】
历史版本
版本 | 变更 |
---|---|
v16.10.0 | 如果提供了 |
v16.10.0 | 如果 |
v15.4.0 | 选项 |
v14.0.0 | 将 |
v13.6.0, v12.17.0 | 选项 |
v12.10.0 | 启用 |
v7.6.0 | 参数 |
v7.0.0 | 传入的 |
v5.5.0 | 现在支持 |
v2.3.0 | 传入的 |
v0.1.31 | 新增于: v0.1.31 |
参数
- path
<string>
|<Buffer>
|<URL>
- options
<string>
|<Object>
flags<string>
请参阅对文件系统 flags 的支持。 默认值: 'w'。 encoding<string>
默认值: 'utf8' fd<integer>
|<FileHandle>
默认值: null mode<integer>
默认值: 0o666 autoClose<boolean>
默认值: true emitClose<boolean>
默认值: true start<integer>
fs<Object>
|<null>
默认值: null - 返回:
<fs.WriteStream>
options 还可以包括 start
选项,以允许在文件开头的某个位置写入数据,允许的值在 [0, Number.MAX_SAFE_INTEGER]
范围内。 修改文件而不是替换它可能需要将 flags
选项设置为 r+
而不是默认的 w
。 encoding
可以是 <Buffer>
接受的任何一种。
如果将 autoClose
设置为 true
(默认行为),则在 'error' 或 'finish' 时文件描述符将自动关闭。 如果 autoClose
为 false
,则即使出现错误,文件描述符也不会关闭。 关闭它并确保没有文件描述符泄漏是应用程序的责任。
默认情况下,流将在销毁后触发 'close
' 事件。 将 emitClose
选项设置为 false
以更改此行为。
通过提供 fs
选项,可以覆盖 open、write、writev
和 close
的相应 fs
实现。 在没有 writev
() 的情况下覆盖 write
() 会降低性能,因为某些优化 (_writev
()) 将被禁用。 当提供了 fs
选项时,则至少需要覆盖 write
和 writev
之一。 如果没有提供 fd
选项,则还需要覆盖 open
。 如果 autoClose
是 true,则还需要覆盖
close
。
与 <fs.ReadStream>
一样,如果指定了 fd,则 <fs.WriteStream>
将忽略 path 参数并使用指定的文件描述符。 这意味着不会触发 'open
' 事件。 fd
应该是阻塞的;非阻塞 fd 应该传给 <net.Socket>
。
代码示例
const fs = require('fs')
const ws = fs.createWriteStream('./index.txt', {
flags: 'w', // 默认读取
encoding: 'utf8', // 默认utf8
fd: null, // 取拿一个文件,默认null,createReadStream自己处理得到
mode: 0o666, // 默认值可读可写不可操作
highWaterMark: 1,
autoClose: true, // 默认 ture,读取完毕后关闭文件
})
ws.write('hello', function () {})