如何在文件上快速保存数组



我制作了大小为[100][20][100][3]的数组var QL = [[],[],[],[]];,每次我的程序完成时,当我的程序再次启动时,我需要保存数组如果文件存在,则只需加载。

1-怎么这么快(我的代码在下面,但非常慢!)?

2 -如何快速加载

QLearn.QLSave = function (){
var jsonQtable = [];
for (var a=0; a<100; a++) {
    for (var b=0; b<20; b++) {
        for (var c=0; c<100; c++){
            for (var d=0; d<2; d++){
                jsonQtable.push(QL[a,b,c,d].toJSON)
            }
        }
    }
}
QLearn.ui.logger.log('Saving QL...');
var dir = './Qtable';
var fileName = dir + '/QL'+'.json';
fs.writeFile(fileName, JSON.stringify(jsonQtable), function (err){
    if (err) {
        QLearn.ui.logger.log('Failed to save! '+err);
    } else {
        QLearn.ui.logger.log('Saved to '+fileName);
    }
});}

您可以批量编写文件,解决方案是在每次迭代中添加文件,使用fs.appendFile:

QLearn.QLSave = function (){
var jsonQtable = [];
for (var a=0; a<100; a++) {
    for (var b=0; b<20; b++) {
        for (var c=0; c<100; c++){
            for (var d=0; d<2; d++){
                fs.appendFile(fileName, QL[a,b,c,d].toJSON, function (err) {
                   if (!err){ 
                      console.log("Success in insert: " + QL[a,b,c,d].toJSON);
                   }
                });
            }
        }
    }
}

相关内容

  • 没有找到相关文章

最新更新