fs.writeFileSync 方法写入文本文件错误
fs.writeFileSync method writing wrong to a text file
我的脚本在写入文本文件时遇到问题。
逻辑流程如下:
我用 fs.readFileSync
读取了整个未格式化的文本文件,并将所有读取的内容传递给字符串类型的变量。之后,我使用 .split
将此文本分成几个部分,并将断开的文本的每个部分保存在一个数组中。之后我使用for循环遍历这个数组并写入另一个文本文件,但是问题来了,我不知道循环中的信息流是否太快,有时会在一个文本文件中写入这个文本文件凌乱的方式,不尊重正在读取的数组的顺序。
代码如下:
try{
const data = fs.readFileSync('test_zpl.txt', 'utf8')
txt = data.replace(/\s/g,"");
} catch (err) {
console.log(err);
}
ArrayZPL = txt.split("+");
//Writting
for(i=0;i<ArrayZPL.length;i++){
try{
fs.writeFileSync('zpl_text.txt', ArrayZPL[i]);
} catch (err){
console.log(err);
}
}
//Reading
try{
const data = fs.readFileSync('zpl_text.txt', 'utf8')
zpl = data;
} catch (err) {
console.log(err);
}
fs.writeFileSync
覆盖作为其第一个参数传递的文件路径。为了演示 运行 下面在节点中的代码,在控制台的工作目录中键入 test.txt
的内容并重复:
const fs = require("fs");
const path = require("path");
const filepath = path.resolve("./test.txt");
let string = "random-" + Math.random();
console.log( "writing %s to %s", string, filepath);
fs.writeFileSync( filepath, string);
要分块写入文件,您可以创建可写流并使用异步代码分块写入数组条目。要保持同步代码,加入数组条目并写入结果:
fs.writeFileSync('zpl_text.txt', ArrayZPL.join("");
我的脚本在写入文本文件时遇到问题。
逻辑流程如下:
我用 fs.readFileSync
读取了整个未格式化的文本文件,并将所有读取的内容传递给字符串类型的变量。之后,我使用 .split
将此文本分成几个部分,并将断开的文本的每个部分保存在一个数组中。之后我使用for循环遍历这个数组并写入另一个文本文件,但是问题来了,我不知道循环中的信息流是否太快,有时会在一个文本文件中写入这个文本文件凌乱的方式,不尊重正在读取的数组的顺序。
代码如下:
try{
const data = fs.readFileSync('test_zpl.txt', 'utf8')
txt = data.replace(/\s/g,"");
} catch (err) {
console.log(err);
}
ArrayZPL = txt.split("+");
//Writting
for(i=0;i<ArrayZPL.length;i++){
try{
fs.writeFileSync('zpl_text.txt', ArrayZPL[i]);
} catch (err){
console.log(err);
}
}
//Reading
try{
const data = fs.readFileSync('zpl_text.txt', 'utf8')
zpl = data;
} catch (err) {
console.log(err);
}
fs.writeFileSync
覆盖作为其第一个参数传递的文件路径。为了演示 运行 下面在节点中的代码,在控制台的工作目录中键入 test.txt
的内容并重复:
const fs = require("fs");
const path = require("path");
const filepath = path.resolve("./test.txt");
let string = "random-" + Math.random();
console.log( "writing %s to %s", string, filepath);
fs.writeFileSync( filepath, string);
要分块写入文件,您可以创建可写流并使用异步代码分块写入数组条目。要保持同步代码,加入数组条目并写入结果:
fs.writeFileSync('zpl_text.txt', ArrayZPL.join("");