使用stream.write()在文本文件中输出行的问题

时间:2018-11-20 10:16:57

标签: javascript fs streamwriter

function sortOutFiles() {
return new Promise(function(resolve, reject) {
    reportStream.write(returnCurrentDate() + ' --- Start importing files to ...\\StoreLine\\Office\\Import ---\n');
    console.info('--- Start importing files to ...\\StoreLine\\Office\\Import ---');
    for(let i = 0; i < templateOfTypes.length; i++) {
        for(let j = 0; j < filesArray.length; j++) {
            if(toUpper(filesArray[j].substr(0, 2)) === 'BX' && templateOfTypes[i] == filesArray[j].substr(2, 3)) {
                importFiles(filesArray[j]);
                checkGenBtchStatus(file);
            }
            if(toUpper(filesArray[j].substr(0, 3)) === 'PLU' && templateOfTypes[i] == toUpper(filesArray[j].substr(0, 3))) {
                importFiles(filesArray[j]);
                checkGenBtchStatus(file);
            }
        }
    }
    resolve();
});
}

function importFiles(file) {
    filesDataList[file] = {
        startOfImport : "",
        endOfImport : "",
        durationOfImport : "",
        statusOfImport : ""
    };
    let oldPath = 'C:\\For_testing\\' + toUpper(file);
    let newPath = trueDestPath + '\\' + toUpper(file);
    //let newPath = 'C:\\Program Files (x86)\\StoreLine\\' + toUpper(file);
    fs.rename(oldPath, newPath, (err) => {
        if (err) throw err;
    });
    filesDataList[file].startOfImport = returnCurrentDate();
    reportStream.write(returnCurrentDate() + ' --- File ' + file + ' was sent to ...\\StoreLine\\Office\\Import ---\n');
    console.info('--- File ' + file + ' was sent to ...\\StoreLine\\Office\\Import ---');
    //reportStream.write('--- status ---\n')
}

function checkGenBtchStatus(file) {
    console.info('--- Checking the status of ' + file + ' file import... ---');
    reportStreamDB.write(returnCurrentDate() + ' --- Checking the status of ' + file + ' file import... ---\n');

}

我正在尝试将日志插入文本文件。 ReportStream.write()用于此目的。

预期的行为:

在文本文件中,我需要查看下一个:

某个日期 ---文件 file1 已发送到... \ StoreLine \ Office \ Import --- \ n

某个日期 ---检查 file1 导入的状态... --- \ n

某个日期 ---文件 file2 已发送到... \ StoreLine \ Office \ Import --- \ n

某个日期 ---检查 file2 导入的状态... --- \ n

某个日期 ---文件 file3 已发送到... \ StoreLine \ Office \ Import --- \ n

某个日期 ---检查 file3 导入的状态... --- \ n

某个日期 ---其他功能中的内容--- \ n

实际行为:

在文本文件中,我看到下一个:

某个日期 ---检查 file1 导入的状态... --- \ n

某个日期 ---其他功能中的内容--- \ n

某个日期 ---文件 file1 已发送到... \ StoreLine \ Office \ Import --- \ n

某个日期 ---文件 file2 已发送到... \ StoreLine \ Office \ Import --- \ n

某个日期 ---文件 file3 已发送到... \ StoreLine \ Office \ Import --- \ n

某个日期 ---其他功能中的内容--- \ n

某个日期 ---检查 file2 导入的状态... --- \ n

某个日期 ---检查 file3 导入的状态... --- \ n

但是在控制台中,每一行都位于正确的位置。 我的 reportStreamDB.write()有什么问题?为什么在 checkGenBtchStatus() reportStreamDB.write()中的行为不同于 console.info()

0 个答案:

没有答案