Ai
1 Star 0 Fork 12

Zero/MCSManager

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
RecordCommand.js 1.51 KB
一键复制 编辑 原始数据 按行查看 历史
Suwings 提交于 2020-10-08 18:29 +08:00 . 优化 使用 Prettier 格式
// 日志命令操作类
const fs = require("fs");
const HISTORY_SIZE_LINE = 1024;
const FILE_CODE = "utf8";
// 默认目录 RecordTmp
class RecordCommand {
constructor(path = "") {
this.path = path;
this.timerlock = false;
}
// 获取当前这一刻的 log 文本文件大小
// 可以定位当前日志起始位置
recordLength() {
try {
let fsstat = fs.statSync(this.path);
return fsstat.size;
} catch (err) {
return 0;
}
}
// 向最后追加一行或一堆数据
writeRecord(data = "") {
if (fs.existsSync(this.path))
fs.appendFile(this.path, data, FILE_CODE, function (err) {
if (err) throw err;
});
else fs.writeFileSync(this.path, new Buffer(HISTORY_SIZE_LINE * 2).toString() + data);
}
readRecord(pstart = 0, length = 32, callback = () => {}) {
if (!fs.existsSync(this.path)) return;
const fsstat = fs.statSync(this.path);
const filesize = fsstat.size;
let buffer = new Buffer(length);
// Start Read from file
fs.open(this.path, "r", function (err, fd) {
if (err) return;
if (pstart >= filesize || pstart <= 0) return;
// 读取文件
fs.read(fd, buffer, 0, length, pstart, function (err, bytesRead, buffer) {
if (err) return;
// 打印出buffer中存入的数据
let resStr = buffer.slice(0, bytesRead).toString();
callback(resStr);
// 关闭文件
fs.close(fd, () => {});
});
});
}
}
module.exports.RecordCommand = RecordCommand;
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/ZeroBlock0_admin/MCSManager.git
git@gitee.com:ZeroBlock0_admin/MCSManager.git
ZeroBlock0_admin
MCSManager
MCSManager
master

搜索帮助