fs.write(fd, buffer[, offset[, length[, position]]], callback)
fd
<integer>buffer
<Buffer> | <TypedArray> | <DataView>offset
<integer>length
<integer>position
<integer>callback
<Function>err
<Error>bytesWritten
<integer>buffer
<Buffer> | <TypedArray> | <DataView>
将 buffer
写入 fd
指定的文件。
offset
确定要写入的缓冲区部分,length
是整数,指定要写入的字节数。
position
指从文件开头数据应被写入的偏移量。
如果 typeof position !== 'number'
,则数据将写入当前位置。
参见 pwrite(2)
。
回调将提供三个参数 (err, bytesWritten, buffer)
,其中 bytesWritten
指定从 buffer
写入的字节数。
如果此方法作为其 util.promisify()
版本被调用,则其将为具有 bytesWritten
和 buffer
属性的 Object
返回 Promise
。
在同一个文件上多次使用 fs.write()
而不等待回调是不安全的。
对于这种情况,建议使用 fs.createWriteStream()
。
在 Linux 上,以追加模式打开文件时,位置写入不起作用。 内核会忽略位置参数,并始终将数据追加到文件末尾。
fd
<integer>buffer
<Buffer> | <TypedArray> | <DataView>offset
<integer>length
<integer>position
<integer>callback
<Function>err
<Error>bytesWritten
<integer>buffer
<Buffer> | <TypedArray> | <DataView>
Write buffer
to the file specified by fd
.
offset
determines the part of the buffer to be written, and length
is
an integer specifying the number of bytes to write.
position
refers to the offset from the beginning of the file where this data
should be written. If typeof position !== 'number'
, the data will be written
at the current position. See pwrite(2)
.
The callback will be given three arguments (err, bytesWritten, buffer)
where
bytesWritten
specifies how many bytes were written from buffer
.
If this method is invoked as its util.promisify()
ed version, it returns
a Promise
for an Object
with bytesWritten
and buffer
properties.
It is unsafe to use fs.write()
multiple times on the same file without waiting
for the callback. For this scenario, fs.createWriteStream()
is
recommended.
On Linux, positional writes don't work when the file is opened in append mode. The kernel ignores the position argument and always appends the data to the end of the file.