在JavaScript中读取文件并用空行分隔数据



我有一个文本文件,它只是:

a
b
c
1
2
3

我使用的是Node中的fs,只要它只读取数据并用换行符分隔,我就可以使用它读取数据。

我有:

var fs = require('fs')
var input = fs.readFileSync("./test.txt").toString().split("nn")
console.log(input)

这将返回

[ 'arnbrncrnrn1rn2rn3' ]  // [ 'abc 123']

而不是我想要的,那就是

[ 'arnbrnc', '1rn2rn3' ]  // [ 'abc', '123' ]

有人能给我解释一下这里的问题吗?此外,如果你不介意解释这意味着什么,那将是惊人的!非常感谢!

你可以试试这个

var fs = require('fs')
var input = fs.readFileSync("./text.txt",'utf-8').replace(/rn/g, " ").trim().split('  ')
console.log(input) //output [ 'a b c', '1 2 3' ]

所以我刚刚找到了一种方法,我感觉很好:facepalm:

因此,由于它是作为一个完整的字符串出现的,我只是进一步拆分它:

var fs = require('fs')
var input = fs.readFileSync("./test.txt").toString().split('nn')
var data = input[0].split("rnrn")
console.log(data[1])  // Correctly outputs ('1n2n3')

我刚刚发现的另一个解决方案也同样有效!

var fs = require('fs')
var input = fs.readFileSync("./test.txt").toString().split('rnrn')
console.log(input[1])  // Also correctly outputs ('1n2n3')

对这篇帖子感到抱歉,但希望这能帮助到其他人!

最新更新