fs.appendFile(path, data[, options], callback)
path<string> | <Buffer> | <URL> | <number> 文件名或文件描述符data<string> | <Buffer>options<Object> | <string>callback<Function>err<Error>
异步地向文件追加数据,如果文件尚不存在则创建该文件。data 可以是字符串或 <Buffer>。
【Asynchronously append data to a file, creating the file if it does not yet
exist. data can be a string or a <Buffer>.】
mode 选项只会影响新创建的文件。详情请参见 fs.open()。
【The mode option only affects the newly created file. See fs.open()
for more details.】
import { appendFile } from 'node:fs';
appendFile('message.txt', 'data to append', (err) => {
if (err) throw err;
console.log('The "data to append" was appended to file!');
}); 如果 options 是字符串,则它指定了编码方式:
【If options is a string, then it specifies the encoding:】
import { appendFile } from 'node:fs';
appendFile('message.txt', 'data to append', 'utf8', callback); path 可以指定为已打开以便追加的数字文件描述符(使用 fs.open() 或 fs.openSync())。该文件描述符不会自动关闭。
【The path may be specified as a numeric file descriptor that has been opened
for appending (using fs.open() or fs.openSync()). The file descriptor will
not be closed automatically.】
import { open, close, appendFile } from 'node:fs';
function closeFd(fd) {
close(fd, (err) => {
if (err) throw err;
});
}
open('message.txt', 'a', (err, fd) => {
if (err) throw err;
try {
appendFile(fd, 'data to append', 'utf8', (err) => {
closeFd(fd);
if (err) throw err;
});
} catch (err) {
closeFd(fd);
throw err;
}
});