如何聚合文件中的文本

时间:2015-04-23 18:49:43

标签: java

我的用例是显示来自java命令行app的数据。以下是input.txt文件中的示例数据,用户将通过命令行输入该文件:

  // (booking date , Empid)
    2011-03-17 10:17:06 EMP001
 //  (appointment date, duration)
    2011-03-21 09:00 2
    2011-03-16 12:34:56 EMP002
    2011-03-21 09:00 2
    2011-03-16 09:28:23 EMP003
    2011-03-22 14:00 2
    2011-03-17 11:23:45 EMP004
    2011-03-22 16:00 1
    2011-03-15 17:29:12 EMP005
    2011-03-21 16:00 

我的输出应该通过output.txt文件中的约会日期聚合,日间约会为:

2011-03-21
09:00 11:00 EMP002
2011-03-22
14:00 16:00 EMP003
16:00 17:00 EMP004

执行此类功能的正确方法和逻辑是什么。

我正在对两个文件进行写操作:input.txt以正确的格式存储,但是从output.txt我希望输出应该是如上所述的格式。下面是我如何将对象存储在output.txt文件中:

static boolean writeToOutputFile(Booking booking){
        boolean flag = true;
        try {
            FileWriter fout = new FileWriter(outputFile);
            fout.write(booking.getMeetingDate());
            fout.write(System.getProperty("line.separator"));
            fout.write(booking.getStartTime()+" "+booking.getEndTime()+" "+booking.getEmpId());
            fout.flush();
            fout.close();
        }catch (Exception ex){
            flag = false;
            logger.error(ex.getMessage());
        }
        return flag;
    }

output.txt:

2011-03-21
09:00 11:00 EMP003
2011-03-21
09:00 11:00 EMP001
2011-03-21
12:00 14:00 EMP002

由于

1 个答案:

答案 0 :(得分:0)

我会为每个约会创建一个类,然后使用正则表达式解析input.txt文件。然后你可以对约会对象进行排序(例如使用Comparable-Interface,然后使用Collections.sort()对对象进行排序)如果分组很重要,你只能在约会对象中包含时间并使用类型的Map地图>做分组。如果您需要进一步的帮助或其他想法,请发表评论