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);
找到了一个比较全的文章 推荐一下: