大橙子网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

nodejs如何修改文件内容

这篇文章将为大家详细讲解有关nodejs如何修改文件内容,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

创新互联专注于七星关区企业网站建设,响应式网站设计,商城网站定制开发。七星关区网站建设公司,为七星关区等地区提供建站服务。全流程定制制作,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

nodejs修改文件内容的方法:1、用“fs.writeFile(path,data,callback:(err)=>void)”方法;2、用“fs.open(path,(err,fd)=>{})”打开文件,再通过文件描述符fd来写入数据。

本教程操作环境:windows7系统、nodejs 14.15.4版,DELL G3电脑。

在nodejs中,可以利用文件文件系统模块(简称 fs)的内置方法来修改文件内容。

修改文件内容

将数据写入文件,数据可以是字符串或buffer:fs.writeFile(path,data,callback:(err)=>void)

fs.writeFile('message.txt', data, (err) => {
  if (err) throw err;
});

还有另一种方式,通过文件描述符fd来写文件:

fs.open(path,(err,fd)=>{
    //针对拿到的fd 进行操作:将buffer内容写如fd对应的文件里
    //position为文件的起点
    //length为待写的长度
    //offset为缓存区起写的位置
    fs.write(fd,buffer,offset,length,position,(err,bytesWrittenLen,buffer)=>{

    })
    //关闭文件
    fs.close(fd, (err) => {
        if (err) throw err;
    });
})

示例:读取文件 并修改文件内容

const fs = require('fs');
const path = require('path');
const newList = [];
fs.readFile(path.join(__dirname, './json/hp_mph.json'), 'utf8', function (err, data) {
    if (err) throw err;
    let list = JSON.parse(data);
    // list.forEach((item,index)=>{
    //     let value = item.properties;
    //     let result = {};  
    //     result.ID = index + 1;
    //     result.TYPE = value.FLAG_A;
    //     result.X = value.X;
    //     result.Y = value.Y;
    //     newList.push(result);
    // })
 
    for (let i = 0; i < list.length; i++) {
        let result = {};
        let value = list[i].properties;
        result.ID = i + 1;
        result.TYPE = value.FLAG_A;
        result.X = value.X;
        result.Y = value.Y;
        newList.push(result);
    }
 
    let newContent = JSON.stringify(newList, null, 4);
    fs.writeFile('result.json', newContent, 'utf8', (err) => {
        if (err) throw err;
        console.log('success done');
    });
});

关于“nodejs如何修改文件内容”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


文章名称:nodejs如何修改文件内容
文章来源:http://dzwzjz.com/article/jgihhh.html
在线咨询
服务热线
服务热线:028-86922220
TOP