从Nodejs中删除文件末尾的字符

时间:2016-08-19 07:55:54

标签: node.js file file-writing

我正在使用fs模块的appendFile()函数将JSON数据附加到文件中。

追加后我需要删除文件中的最后一个字符并附加一个新字符。我尝试使用\b转义序列来删除最后一个字符,但它没有用。

此外,了解如何编辑文件中间的字符非常有用。

1 个答案:

答案 0 :(得分:1)

您可以尝试一下; 使用

将文件内部JSON的大括号']'替换为'逗号'。
var fd = fs.openSync("file.txt", "r+");
var currentDataLength = data.length;
var buf = new Buffer(","); // create a buffer
  if(currentDataLength > 2) {
    fs.writeSync(fd, buf, 0, buf.length, currentDataLength-1); // this replaces '[' with ',' to separate the objects in the JSON
}

var inputData = `${JSON.stringify({testData: 'Dare Something'})}]`; //  notice that array closing brace ']' is included
currentDataLength += inputData.length; //update the variable holding the JSON Data length of you file

fs.writeFileSync('file.txt', inputData, {encoding: 'utf8', flag: 'a+'}); //updates file