读取多个文件处理文本并在JAVA中生成报告

时间:2017-12-19 15:19:31

标签: java arrays report

我目前正在开发一个框架,其中我们执行一些Java执行,截至目前我们必须手动编写java代码并执行它。为了让我们的生活更简单,我们正在尝试生成一个框架,其中用户将用简单的英语在文本文件中编写他必须执行的内容,例如 - Sum | 2+3。现在我们已经在java类文件中定义了这些关键字的定义,如Sum,Divide,Product等。我们现在从1个文件夹中读取所有这些文本文件,然后由我们的代码执行其余的执行。

我们已经实现了上面提到的事情,但是现在执行后我们想要生成如下的报告 - 假设文件夹中有5个文本文件(文件编号是动态的) -

  • 001
  • 002
  • 003
  • 004
  • 005

其中,无论代码是作为004的一部分执行的,都会抛出一些错误,但其余的都工作正常。

我们想要一个excel报告,将报告显示为 -

  • 001 - 通过
  • 002 - 通过
  • 003 - 通过
  • 004 - 失败 - Stacktrace
  • 005 - 通过

这在JAVA中怎么可能?我们使用缓冲文件阅读器来读取文件内容,然后将字符串拆分为" |" char然后相应地匹配/处理关键字

1 个答案:

答案 0 :(得分:0)

由于你没有添加任何代码,我不能更具体,但你可以这样做:

try(BufferedWriter bw = new BufferedWriter(new FileWriter("report.txt"))){
    for(File currentFile : filesToProcess){
        try{
            processor.processFile(currentFile);
            bw.write(currentFile.getName() + " - Passed\n" );
        }catch(Exception e){
            bw.write(currentFile.getName() + " - Failed " + e.getMessage() + "\n");
        }
    }
}catch(IOException e){
        e.printStackTrace();
}

实质上,将用于处理文件内容的代码包装到方法中,并根据成功执行该方法或者是否产生运行时错误,将行添加到日志文件中。