将数据插入文本文件的中间并不是一项简单的任务。如果可能,您应该将其附加到文件末尾。
将数据附加到某些文本文件的最简单方法是使用内置fs.appendFile(filename, data[, options], callback)功能 https://nodejs.org/api/fs.html#fs_fs_appendfile_filename_data_options_callback from fs module https://nodejs.org/api/fs.html:
var fs = require('fs')
fs.appendFile('log.txt', 'new data', function (err) {
if (err) {
// append failed
} else {
// done
}
})
但是如果你想多次将数据写入日志文件,那么最好使用fs.createWriteStream(path[, options])功能 https://nodejs.org/api/fs.html#fs_fs_createwritestream_path_options反而:
var fs = require('fs')
var logger = fs.createWriteStream('log.txt', {
flags: 'a' // 'a' means appending (old data will be preserved)
})
logger.write('some data') // append string to your file
logger.write('more data') // again
logger.write('and more') // again
每次您调用时,节点都会不断将新数据附加到您的文件中.write
,直到您的应用程序将被关闭,或者直到您手动关闭流调用.end
:
logger.end() // close string
注意logger.write
在上面的示例中,不写入新行。要将数据写入新行:
var writeLine = (line) => logger.write(`\n${line}`);
writeLine('Data written to a new line');