2 回答
TA贡献1815条经验 获得超10个赞
writeFile 的工作方式是它不会附加到文件中,而是替换其中的文本。这就是您获得输出的原因。
您可以改为使用函数 appendFile。
function fileWrite2(savePath) {
setTimeout(() => {
for (var i = 0; i < tips.length; i++) {
fs.appendFile(savePath, tips[i] + "\n", function(err) {
if (err) throw err;
});
}
console.log('File written sucessfully');
}, 3000);
}
TA贡献1893条经验 获得超10个赞
fs.writeSync将给定的内容写入文件,导致覆盖文件的现有内容。
如果您希望附加到文件中,您应该fs.appendFileSync为此目的使用。
在此之前,有一个快速提示:
您应该检查目录/文件是否已经存在,如果不存在则创建一个新目录。
你可以用fs.ensureDirSync(dir)和做到这一点fs.mkdirSync(dir)
if (!fs.ensureDirSync(dir)) {
fs.mkdirSync(dir);
}
现在,您可以使用fs.appendFileSync附加到您的文件。
fs.appendFileSync(dir, 'your data!', function(err){
if(err)
return err;
console.log("file saved successfully");
});
这里要注意的主要概念是,任何写文件操作都会替换文件和内容,而附加文件操作会将内容附加到文件末尾。
添加回答
举报