feat:评判写入文件openFile优化

This commit is contained in:
surenjun 2024-12-24 17:27:02 +08:00
parent 4ac12f6526
commit fbc1d49af1
2 changed files with 42 additions and 38 deletions

View File

@ -78,25 +78,18 @@ export default class FileUtil{
* @desc
*
*/
public editFile = async (filePath:string,content:string,type?:string)=>{
public editFile = async (filePath:string,content:string,fd?:number)=>{
const { READ_WRITE,CREATE,APPEND }= fs.OpenMode
try {
let file = fs.openSync(filePath, READ_WRITE | APPEND |CREATE);
let index
// if(type=='overWrite'){
// //文件覆蓋
// index=0
// }else{
// //文件追加
// const str = fs.readTextSync(filePath);
// index= str.length
// }
const newStr = content + '\n'
//追加写入文件
fs.writeSync(file.fd,newStr)
fs.closeSync(file)
console.error(LOGTAG,'写入文件成功')
return true
if(fd !== undefined){
fs.writeSync(fd,newStr)
return fd
}else{
let file = fs.openSync(filePath, READ_WRITE | APPEND |CREATE);
fs.writeSync(file.fd,newStr)
return file.fd
}
}catch (e){
console.error(LOGTAG,JSON.stringify(e))

View File

@ -21,9 +21,22 @@ export default class FileLog {
private stuInfo: StuInfo
public folderPath: string
public progressDataFd: number = undefined
public examJudgeWuxiDataFd: number = undefined
public examJudgeWuxiProgressDataFd: number = undefined
public plcDataFd: number = undefined
public examJudgeDataFd: number = undefined
public examJudgeCallbackDataFd: number = undefined
public examJudgeLogDataFd: number = undefined
public fourAndOneLogDataFd: number = undefined
public fourAndOneLogDataBytesFd: number = undefined
public examLineDataFd: number = undefined
constructor(context) {
const fileUtil = new FileUtil(context)
this.fileUtil = fileUtil
}
// 设置文件夹
@ -41,63 +54,62 @@ export default class FileLog {
// 过程文件数据
public setExamProgressData = async (str:Object) => {
const {fileUtil,folderPath} = this;
await fileUtil.editFile(`${folderPath}/exam_progress_data.txt`,JSON.stringify(str));
const {fileUtil,folderPath,progressDataFd} = this;
this.progressDataFd = await fileUtil.editFile(`${folderPath}/exam_progress_data.txt`,JSON.stringify(str),progressDataFd);
}
// 无锡所接口数据
public setExamJudgeWuxiData = async (str) => {
const {fileUtil,folderPath} = this;
await fileUtil.editFile(`${folderPath}/wuxi_exam_data.txt`,str);
const {fileUtil,folderPath,examJudgeWuxiDataFd} = this;
this.examJudgeWuxiDataFd = await fileUtil.editFile(`${folderPath}/wuxi_exam_data.txt`,str,examJudgeWuxiDataFd);
}
// 无锡所过程数据
public setExamJudgeWuxiProgressData = async (str)=>{
const {fileUtil,folderPath} = this;
await fileUtil.editFile(`${folderPath}/wuxi_progress_data.txt`,str);
const {fileUtil,folderPath,examJudgeWuxiProgressDataFd} = this;
this.examJudgeWuxiProgressDataFd = await fileUtil.editFile(`${folderPath}/wuxi_progress_data.txt`,str,examJudgeWuxiProgressDataFd);
}
// plc文件数据
public setPlcProgressData = async (str:Object) => {
const {fileUtil,folderPath} = this;
await fileUtil.editFile(`${folderPath}/plc_data.txt`,JSON.stringify(str));
const {fileUtil,folderPath,plcDataFd} = this;
this.plcDataFd = await fileUtil.editFile(`${folderPath}/plc_data.txt`,JSON.stringify(str),plcDataFd);
}
// 过程评判json数据
public setExamJudgeData = async (str:Object) => {
const {fileUtil,folderPath} = this;
await fileUtil.editFile(`${folderPath}/judge_exam_data.txt`,JSON.stringify(str));
const {fileUtil,folderPath,examJudgeDataFd} = this;
this.examJudgeDataFd = await fileUtil.editFile(`${folderPath}/judge_exam_data.txt`,JSON.stringify(str),examJudgeDataFd);
}
// 过程评判回调数据
public setExamJudgeCallbackData = async (str:string) => {
const {fileUtil,folderPath} = this;
await fileUtil.editFile(`${folderPath}/judge_progress_callback_data.txt`,str);
const {fileUtil,folderPath,examJudgeCallbackDataFd} = this;
this.examJudgeCallbackDataFd = await fileUtil.editFile(`${folderPath}/judge_progress_callback_data.txt`,str,examJudgeCallbackDataFd);
}
// 过程评判日志调数据
public setExamJudgeLogData = async (str:string) => {
const {fileUtil,folderPath} = this;
await fileUtil.editFile(`${folderPath}/judge_log_data.txt`,str);
const {fileUtil,folderPath,examJudgeLogDataFd} = this;
this.examJudgeLogDataFd = await fileUtil.editFile(`${folderPath}/judge_log_data.txt`,str,examJudgeLogDataFd);
}
// 设置四合一画面数据
public setFourAndOneLogData = async (str:string) => {
const {fileUtil,folderPath} = this;
await fileUtil.editFile(`${folderPath}/four_one_log_data.txt`,str);
const {fileUtil,folderPath,fourAndOneLogDataFd} = this;
this.fourAndOneLogDataFd = await fileUtil.editFile(`${folderPath}/four_one_log_data.txt`,str,fourAndOneLogDataFd);
}
public setFourAndOneLogDataBytes = async (str:string) => {
const {fileUtil,folderPath} = this;
await fileUtil.editFile(`${folderPath}/four_one_log_byte_data.txt`,str);
const {fileUtil,folderPath,fourAndOneLogDataBytesFd} = this;
this.fourAndOneLogDataBytesFd = await fileUtil.editFile(`${folderPath}/four_one_log_byte_data.txt`,str,fourAndOneLogDataBytesFd);
}
// 无锡所轨迹数据
public setExamLineData = async (plcStr) => {
const {fileUtil,folderPath} = this;
const {fileUtil,folderPath,examLineDataFd} = this;
const plcData = plcStr.split(',');
const time = await getCurrentTime();
const lineData = [
/*帧头*/ time,
/*卫星时间*/time,
@ -123,7 +135,6 @@ export default class FileLog {
/*发动机转速*/ plcData[25],
/*结束符*/ time,
];
await fileUtil.editFile(`${folderPath}/exam_wuxi_data.txt`,JSON.stringify(lineData));
this.examLineDataFd = await fileUtil.editFile(`${folderPath}/exam_wuxi_data.txt`,JSON.stringify(lineData),examLineDataFd);
};
}