fs.write(fd, string[, position[, encoding]], callback)

string 写入到 fd 指定的文件。 如果 string 不是字符串,则该值将被强制转换为字符串。

position 指定应该写入此数据的文件开头的偏移量。 如果 typeof position !== 'number',则从当前位置写入数据。参阅 pwrite(2)

encoding 指定字符串的编码。

回调有三个参数 (err, written, string),其中 written 指定字符串中已写入文件的字节数。 写入的字节数与字符串的字符数是不同的。参阅 Buffer.byteLength

在同一文件上多次使用 fs.write() 且不等待回调是不安全的。 对于这种情况,建议使用 fs.createWriteStream()

在 Linux 上,在追加模式下打开文件时,不能指定写入的位置。 内核会忽略位置参数,并始终将数据追加到文件末尾。

Write string to the file specified by fd. If string is not a string, then the value will be coerced to one.

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).

encoding is the expected string encoding.

The callback will receive the arguments (err, written, string) where written specifies how many bytes the passed string required to be written. Bytes written is not necessarily the same as string characters written. See Buffer.byteLength.

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.