我在这里,因为我有奇怪的问题。我想从txt文件中读取一些int值。所有这些都在一行中。为此,我创建了非常简单的node.js代码:
const readValues = fs.createReadStream(('txt\\' + file[0]));
readValues.setEncoding(); //It's because I want String here
readValues.on('data', (chunk) => {
chunk = chunk.trim();
chunk.split(' ').forEach(value => {
values.push(parseInt(value, 10));
});
});
Then Im getting this warning
但是,当我添加console.log以在控制台中显示这些值时:
const readValues = fs.createReadStream(('txt\\' + file[0]));
readValues.setEncoding(); //It's because I want String here
readValues.on('data', (chunk) => {
chunk = chunk.trim();
chunk.split(' ').forEach(value => {
console.log(value); // here
values.push(parseInt(value, 10));
});
});
然后所有这些值都显示在控制台中,并且上面没有显示警告。
我还测试了readFileSync:
const readValues = fs.readFileSync(('txt//' + file[0]), 'utf8').trim();
readValues.split(' ').forEach(value => {
values.push(parseInt(value, 10));
});
//console.log(values);
但是结果却相反-我在显示这些值时收到该错误,但是当我不显示该值时,我没有得到它:https://imgur.com/a/yehrmX7
这是在Node的LTS版本和11.11.0中发生的。我没有想法,没有找到任何解决方案。也许您的某个人知道我在哪里犯了错误?我将不胜感激。
最佳答案
问题是我以错误的方式初始化了数组。
我用这种方式:
const values = Array.prototype;
而且应该是这样的:
const values = new Array();
好吧,我的错。我自欺欺人是因为我想在第一步中创建完美的代码。我不是完美的人。对不起,打扰您了。我把其他人的答案留在这里。
关于javascript - 从文件中读取Int值,全部一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55243911/