node学习(三) ——读写文件

 1.写文件的一个简单操作,node 提供了很多api   我这里就用简单的writeFIle 和appendFile(仅供参考)

1.写文件的一个简单操作  这里他提供了很多个api   我是用的writeFile和appendFile(仅供参考)
const fs = require('fs');
const path = require('path');

async function getIsExist() {
    let isExist = false;
    await fs.exists(url, function (exists) {
        isExist = exists;
    });
    return isExist;
}

function writeTxtToFile(str, url) {


    if (!getIsExist()) {
        //异步方法
        fs.writeFile(url, '初始化第一行', function (err) {
            if (err) {
                console.log('写文件操作失败');
            } else {
                console.log('写文件操作成功');
            }
        });
    } else {
        let time = new Date().getTime();
        let date = formatDate(time);
        fs.appendFile(url, str+': '+ date + ' 这是追加的数据'+'\n' , function (err) {
            if (err) {
                console.log('追加内容失败');
            } else {
                console.log('已追加一行');
            }
        })
    }
}

function formatDate(time, formatStr) {
    let date = new Date(time);
    let Y = date.getFullYear();
    let M = (date.getMonth() + 1) < 10 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1);
    let D = date.getDate() < 10 ? '0' + (date.getDate()) : data.getDate();
    let h = date.getHours();
    let m = date.getMinutes();
    let s = date.getSeconds();
    formatStr = formatStr || 'YYYY-MM-DD H:m:s';
    return formatStr.replace(/YYYY|MM|DD|H|m|s/ig, function (matches) {
        return ({
            YYYY: Y,
            MM: M,
            DD: D,
            H: h,
            m: m,
            s: s
        })[matches];
    });
}

let url = './message.txt';
function circ(index) {
    writeTxtToFile(index, url);
    setTimeout(function () {
       circ(++index);
    }, 5000);
}

circ(1);



2.读文件的操作   同步和异步  以及文件流(写文件也有,就不多说啦,这里就用一下简单的读取api)

let fs = require('fs');
//读取指定文件中的用户信息
let url = './user.txt';
function getUserInfoForFile(url) {
    //异步的形式读取
    fs.readFile(url, {
        flag: 'r',
        encoding: 'utf-8'
    }, function (err, data) {
        if (err) {
            console.log(err);
        } else {
            console.log('异步', data);
        }
    });
    //同步的形式读取
    let str = fs.readFileSync(url, {encoding: 'utf-8'});
    let strArr = str.split('\r\n');
    let info = {};
    for (let i = 0; i < strArr.length; i++) {
        let objArr = strArr[i].split(':');
        info[objArr[0]] = objArr[1];
    }
    return info;
}
let userInfo =  getUserInfoForFile(url);
console.log('userInfo',userInfo);

找到了一个比较全的文章  推荐一下:

https://www.cnblogs.com/wushanbao/p/7003308.html
 

猜你喜欢

转载自blog.csdn.net/wangshang1320/article/details/86083732
今日推荐