我在这里,因为我有奇怪的问题。我想从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/

10-11 05:36