首页 > 解决方案 > 在 JavaScript 中读取文件并用空行分隔数据

问题描述

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

a
b
c

1
2
3

我正在使用来自 Node 的 fs 并且我之前已经使用它读取数据,只要它只读取数据并用换行符分隔它。

我有:

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

这返回

[ 'a\r\nb\r\nc\r\n\r\n1\r\n2\r\n3' ]  // [ 'abc 123']

而不是我想要的,这是

[ 'a\r\nb\r\nc', '1\r\n2\r\n3' ]  // [ 'abc', '123' ]

有人可以在这里向我解释这个问题吗?此外,如果您不介意解释 \r 的含义,那就太棒了!太感谢了!

标签: javascriptnode.js

解决方案


所以我只是想出了一个方法来做到这一点,我觉得这样 :facepalm:

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

var fs = require('fs')
var input = fs.readFileSync("./test.txt").toString().split('\n\n')
var data = input[0].split("\r\n\r\n")
console.log(data[1])  // Correctly outputs ('1\n2\n3')

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

var fs = require('fs')
var input = fs.readFileSync("./test.txt").toString().split('\r\n\r\n')
console.log(input[1])  // Also correctly outputs ('1\n2\n3')

抱歉这篇文章,但希望这对其他人有帮助!


推荐阅读