云海网博客杂谈

 首页  知道  驾考  杂谈  工具  友链
 点我隐藏

node.js fs文件系统字符串的操作与存储修改

      nodejs      :站长发布      :4月前(11-29)      :351次浏览


var arr = ['list','fanwei','kkkk'];

var arrstr = JSON.stringify(arr);//转字符串

console.log(arrstr);


var arr = {id:'1',name:'马云',sex:'男'};

var arrstr = JSON.stringify(arr);//转字符串

console.log(arrstr);


var objectstr = '{"id":"1","name":"马云","sex":"男"}';

var objectarr = JSON.parse(objectstr);//字符串转换成对象

console.log(objectarr.name);//马云


//数组写入a.txt

var str= [

    {id:1,name:"马云",sex:"男",img:''},

    {id:2,name:"马化腾",sex:"男",img:''},

    {id:3,name:"特朗普",sex:"男",img:''}

];

var strarr = JSON.stringify(str);

var fs = require('fs');

fs.writeFile('./A.TXT',strarr,function(err){

    if(!err){

        console.log("写入成功");

    }else{

        console.log("写入失败");

    }

})


//数组文件追加写入数组

var str2 = {id:4,name:'普京大帝',sex:'男',img:''}

fs.readFile('./A.TXT','utf8',function(err,data){

    if(!err){

        var arr = JSON.parse(data);//字符转数组

        arr.push(str2);//追加内容

        var strarr = JSON.stringify(arr);//数组转字符

        fs.writeFile('./A.TXT',strarr,function(err){

            if(!err){

                console.log("写入成功"+strarr);

            }else{

                console.log("写入失败"+err);

            }

        })

    }else{

        console.log("读取失败");

    }

})


//删除文件中的ID为2的数组,并把马云改为马斯克

function readfiless(starnumber,endnumber,delayss){

    fs.readFile('./A.TXT','utf8',function(err,data){

        if(!err){

            var prindata = "-------" + data + "-------";

            //console.log(prindata);

            //try抑制报错,错误的解析重写文件,写入频繁会导致报错无法读取信息

            try{

                var arr = JSON.parse(data);

                if(!arr){

                    console.log("非数组");

                }

                var newArr = [];

                for(let i=0;i<arr.length;i++){

                    if(arr[i].id != 2){

                        if(arr[i].name == "马云"){

                            arr[i].name = "马斯克";

                        }

                        newArr.push(arr[i]);

                    }

                }

                var getstrarr = JSON.stringify(newArr);

                console.log("修改与删除:" + getstrarr);

                fs.writeFile('./A.TXT',getstrarr,function(err){

                    if(!err){

                        console.log("删除id为2的数组,写入成功");

                    }else{

                        console.log("删除文件中id为2的失败");

                    }

                })

            }catch(e){

                starnumber = starnumber + 1

                console.log(starnumber);

                if(starnumber < endnumber){

                    setTimeout(function(){


                        readfiless(starnumber);

                    },delayss)

                }else{

                    console.error('解析 JSON 失败,停止写入');

                }

                //console.error('解析 JSON 失败:', e);

            }

   

        }else{

            console.log("读取失败");

        }

    })

}

//readfiless:参数一:起始数值0,参数(整数);参数二:最大值,参数(整数);参数三:延迟毫秒,参数(整数);起始为0,结束为10,10次后停止结束写入

readfiless(0,10,1000)

 浏览:351

版权声明:本文为云海网站长的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://www.xn--qiv211ar60a.com/114.html

版权所有 © 2020-至今 云海网 | 渝ICP备18013004号
Theme Giligili By Shawn With | All Rights Reserved
本站已安全运行: