2015-04-23 3 views
1

Мое пользовательское представление - это отображение данных из приложения командной строки java. Вот выборочные данные внутри 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 

Благодаря

+6

Правильный подход - начать проект Java и попробовать что-то. – JFPicard

+0

Да, настроил java-проект и уже начал работу, ища советы, чтобы начать в правильном направлении, а не переделывать снова из-за ограничений по времени. Я пытаюсь что-то в логической части, а затем обновляю проблему. – zdhim

+0

В принципе вам нужно группировать данные по дате. Прочитайте файл по строкам, разделите каждую строку на 3 поля (дата, время. Событие). Храните 'Map >', который отображает строки даты в список объектов, содержащих имя времени и события. Затем отсортируйте ключи этой карты и перейдите по карте, извлеките и распечатайте события. Кажется, вы хотите группировать события по времени; используйте аналогичную карту. – 9000

ответ

0

Я хотел бы создать класс для каждого назначения, а затем разобрать файл input.txt с использованием регулярных выражений. Затем вы можете отсортировать объекты назначения (например, с помощью Comparable-Interface, а затем отсортировать объекты с Collections.sort()). Если группировка важна, вы можете включить только время в свой объект назначения и использовать карту с типом Карта> для группировки. Если вам нужна дополнительная помощь или альтернативные идеи, оставьте комментарий

Смежные вопросы