所以我做了一个简单的代码来打印从1到100的数字,它运行得很好,但我想把每个数字都存储在一个文本文件中,所以从1到100的每个数字都会存储在自己的行中,问题是它只存储最后一个数字
const fs = require('fs')
for(var i = 1; i < 100; i++){
let data = `(1, ${i}, 0, 'Game Channel ${i}', '1'),`
fs.writeFile('Output.txt', data, (err) => {
if (err) throw err;
})}
例如,在txt文件中,输出为:
(1,1,0,'游戏频道1','1'(,(1,2,0,"游戏频道2","1"(
写在最后,因为在以后的每次写操作中都要覆盖它。
const fs = require('fs');
let data = "";
for (let i = 1; i <= 100; i++){
data += `(1, ${i}, 0, 'Game Channel ${i}', '1'),n`;
}
fs.writeFile('Output.txt', data, (err) => {
if (err) throw err;
});
您可以使用createWriteStream
打开文件,然后异步写入。
const fs = require('fs');
async function main() {
const ws = fs.createWriteStream('output.txt');
for (let i = 1; i < 100; i++) {
let data = `(1, ${i}, 0, 'Game Channel ${i}', '1'),n`
await ws.write(data);
}
}
main();
首先构建整个组合字符串,然后写入文件。
const fs = require('fs');
const data = Array.from({length: 100}, (_, i) => `(1, ${i+1}, 0, 'Game Channel ${i+1}', '1'),n`).join('')
fs.writeFile('Output.txt', data, (err) => {
if (err) throw err;
});