Node.js使用fs模块写入记事本文件格式异常如何调整
问题原因
你当前写入出现转义字符的核心原因是使用了JSON.stringify()处理字符串数组:JSON序列化会自动将换行符转义为\n,同时给每个字符串元素添加双引号、保留数组的方括号标识,才会出现你看到的多余字符。
调整方案
你不需要对数组做JSON序列化,直接将数组元素按规则拼接为普通字符串写入即可,同时可以对每段内容做空白字符裁剪:
const fs = require('fs'); var text = []; var max_iteration = 226; for (let i = 101; i < max_iteration; i++) { if (i == 126) i = 201; let html = `[${i}](endpoint-internal-d70) auth = ${i} aors = ${i}callerid = voicebot101 <101> [${i}](auth-userpass) password = ${i} username = ${i} [${i}](aor-single-reg)`; // 按需开启空白处理:移除每行首尾多余空格,保留你需要的缩进格式可以注释掉该行 html = html.split('\n').map(line => line.trim()).join('\n'); text.push(html); if (i + 1 === max_iteration){ display(text); console.log('Last loop:', i + 1); } } function display(text) { // 用换行拼接数组元素,不要用JSON.stringify const outputContent = text.join('\n\n'); fs.writeFile('write.txt', outputContent, err => { if (err) { console.log('Error writing file', err); } else { console.log('Successfully wrote file'); } }); }
如果需要完全保留你示例中的缩进格式,只需要注释掉代码中的空白处理行即可,写入后不会再出现\n转义符、多余双引号和方括号。
内容的提问来源于stack exchange,提问作者Jan Walczak
相关产品推荐
相关产品推荐

