Advertisement
jaVer404

level19.lesson10.bonus01(failed but not tested)

Mar 13th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.31 KB | None | 0 0
  1. package com.javarush.test.level19.lesson10.bonus01;
  2.  
  3.  
  4. import java.io.BufferedReader;
  5. import java.io.FileReader;
  6. import java.io.IOException;
  7. import java.io.InputStreamReader;
  8. import java.util.ArrayList;
  9. import java.util.Iterator;
  10. import java.util.List;
  11.  
  12. /* Отслеживаем изменения
  13. Считать в консоли 2 имени файла - file1, file2.
  14. Файлы содержат строки,
  15. ----------------------------------------------
  16. file2 является ОБНОВЛЕННОЙ ВЕРСИЕЙ file1, часть строк совпадают.
  17. Нужно создать объединенную версию строк, записать их в список lines
  18.  
  19. ?Что значит "объединенную"
  20. -----------------------------------------------
  21. Операции ADDED и REMOVED не могут идти подряд, они всегда разделены SAME
  22.  
  23. Пример:
  24. оригинальный   редактированный    общий
  25. file1:         file2:             результат:(lines)
  26.  
  27. строка1        строка1            SAME строка1
  28. строка2                           REMOVED строка2
  29. строка3        строка3            SAME строка3
  30. строка4                           REMOVED строка4
  31. строка5        строка5            SAME строка5
  32. строка0                           REMOVED строка0
  33. строка1        строка1            SAME строка1
  34. строка2                           REMOVED строка2
  35. строка3        строка3            SAME строка3
  36. строка5                           ADDED строка5
  37. строка4        строка4            SAME строка4
  38. строка5                           REMOVED строка5
  39.  
  40. ----------------------------------------------
  41. ADDED и REMOVED не могут идти подряд, они всегда разделены SAME
  42. 1. Первый файл сравниваем со вторым
  43.     (в примере, список(объедененный) содержит все линии из первого файла)
  44.     и в зависимости от того есть ли этот элемент во втором файле добавляет
  45.     один из вариантов ADDED SAME REMOVED.
  46.     SAME может идти подряд
  47. ----------------------------------------------
  48. d:\Test_files\Input.txt
  49. d:\Test_files\Output.txt
  50. */
  51.  
  52. public class Solution {
  53.     public static List<LineItem> lines = new ArrayList<LineItem>();
  54.  
  55.     public static void main(String[] args) {
  56.         BufferedReader readName = null;
  57.         try
  58.         {
  59.             readName = new BufferedReader(new InputStreamReader(System.in));
  60.             //String fileName1 = readName.readLine();
  61.             String fileName1 = "d:\\Test_files\\Input.txt";
  62.             //String fileName2 = readName.readLine();
  63.             String fileName2 = "d:\\Test_files\\Output.txt";
  64.             readName.close();
  65.             ArrayList<String> fileOneList = fileToList(fileName1);
  66.             ArrayList<String> fileTwoList = fileToList(fileName2);
  67.             for (LineItem li :lines) {
  68.                 System.out.println(li.toString());
  69.             }
  70.  
  71.  
  72.         } catch (IOException e) {}
  73.  
  74.     }
  75.  
  76.  
  77.     public static enum Type {
  78.         ADDED,        //добавлена новая строка
  79.         REMOVED,      //удалена строка
  80.         SAME          //без изменений
  81.     }
  82.  
  83.     public static class LineItem {
  84.         public Type type;
  85.         public String line;
  86.  
  87.         public LineItem(Type type, String line) {
  88.             this.type = type;
  89.             this.line = line;
  90.         }
  91.  
  92.         public Type getType () {
  93.             return this.type;
  94.         }
  95.         public  String getLine () {
  96.             return this.line;
  97.         }
  98.     }
  99. /**
  100. * */
  101.     public static ArrayList<String> fileToList (String fileName){
  102.         ArrayList<String> linesFromFile = new ArrayList<>();
  103.         try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
  104.             String line;
  105.             while ((line = br.readLine()) != null) {
  106.                 linesFromFile.add(line);
  107.             }
  108.         } catch (IOException e) {}
  109.         return linesFromFile;
  110.     }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement