gpt4 book ai didi

node.js - Node 'readline' 如何检测当前行是文件中的最后一行

转载 作者:行者123 更新时间:2023-12-05 07:29:27 26 4
gpt4 key购买 nike

我正在使用 nodejs 'readline' 逐行读取文件。我正在逐行读取 .csv 文件并将其转换为 JSON。我从写“{”开始,然后对每一行进行解析、格式化并以“,”结束。我想对最后一行做一些与前面几行不同的事情,即。以 '}' 而不是 ',' 终止。如何检测当前行是最后一行。

    var readline = require("readline");
var fs = require("fs");

var read_in = readline.createInterface({
input: fs.createReadStream(file),
crlfDelay: Infinity
});

var write_out = fs.createWriteStream("intermediate.json")

write_out.write("{");

read_in.on("line", function (line) {
var a = line.split(",");
var b = "\"" + a[0].trim() + "\" : \"" + a[1] + "\",\r\n"
write_out.write(b);
})
read_in.on("close", function () {
write_out.write("}"); // leaves an incorrectly formatted JSON file
})

最佳答案

使用 csv 执行此操作的一种有趣方式,但它应该适用于任何类型的文档。

文档内容

one,apple
two,banana
three,orange

代码

// Load document
const originalStream = fs.readFileSync(`my_document.csv`);

// Convert document to hex
const hexStream = new Buffer.from(streambase).toString('hex')
// Output
// 6f6e652c6170706c650a74776f2c62616e616e610a74687265652c6f72616e6765
// New lines are separated by 0a so we can assume thats the start of a new line

// Retrieve last line in hex format
const lastLineHex = hexStream.split("0a").splice(-1)[0]
// Output
// 74687265652c6f72616e6765

const convertLastLineBackToUtf = new Buffer.from(lastLineHex, 'hex').toString();
// Output
// three,orange

要检查它们是否在最后一行,您可以将其与最终输出进行比较。

关于node.js - Node 'readline' 如何检测当前行是文件中的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52742649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com