Advertisement
jaVer404

level19.lesson10.bonus01(test and files)

Mar 9th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.97 KB | None | 0 0
  1. package com.javarush.test.level19.lesson10.bonus01;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.FileReader;
  5. import java.io.InputStreamReader;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. /* Отслеживаем изменения
  10. Считать в консоли 2 имени файла - file1, file2.
  11. Файлы содержат строки,
  12. ----------------------------------------------
  13. file2 является ОБНОВЛЕННОЙ ВЕРСИЕЙ file1, часть строк совпадают.
  14. Нужно создать объединенную версию строк, записать их в список lines
  15.  
  16. ?Что значит "объединенную"
  17. -----------------------------------------------
  18. Операции ADDED и REMOVED не могут идти подряд, они всегда разделены SAME
  19.  
  20. Пример:
  21. оригинальный   редактированный    общий
  22. file1:         file2:             результат:(lines)
  23.  
  24. строка1        строка1            SAME строка1
  25. строка2                           REMOVED строка2
  26. строка3        строка3            SAME строка3
  27. строка4                           REMOVED строка4
  28. строка5        строка5            SAME строка5
  29. строка0                           ADDED строка0
  30. строка1        строка1            SAME строка1
  31. строка2                           REMOVED строка2
  32. строка3        строка3            SAME строка3
  33. строка5                           ADDED строка5
  34. строка4        строка4            SAME строка4
  35. строка5                           REMOVED строка5
  36.  
  37. ----------------------------------------------
  38. ADDED и REMOVED не могут идти подряд, они всегда разделены SAME
  39. 1. Первый файл сравниваем со вторым
  40.     (в примере, список(объедененный) содержит все линии из первого файла)
  41.     и в зависимости от того есть ли этот элемент во втором файле добавляет
  42.     один из вариантов ADDED SAME REMOVED.
  43.     SAME может идти подряд
  44. ----------------------------------------------
  45. d:\Test_files\Input.txt
  46. d:\Test_files\Output.txt
  47. */
  48.  
  49. public class Solution {
  50.     public static List<LineItem> lines = new ArrayList<LineItem>();
  51.  
  52.     public static void main(String[] args) {
  53.         BufferedReader readName = null;
  54.         try {
  55.             readName = new BufferedReader(new InputStreamReader(System.in));
  56.             //String fileName1 = readName.readLine();
  57.             String fileName1 = "d:\\Test_files\\Input.txt";
  58.             //String fileName2 = readName.readLine();
  59.             String fileName2 = "d:\\Test_files\\Output.txt";
  60.             readName.close();
  61.             BufferedReader fileReader1 = new BufferedReader(new FileReader(fileName1));
  62.             BufferedReader fileReader2 = new BufferedReader(new FileReader(fileName2));
  63.             String fileLine1="";
  64.             String fileLine2="";
  65.             boolean stopShitting = false;
  66.             while (!stopShitting) {
  67.             //while ((fileLine1=fileReader1.readLine())!=null) {
  68.                 try
  69.                 {
  70.                     while ((fileLine1=fileReader1.readLine())!=null ) {
  71.                         fileLine2=fileReader2.readLine();
  72.                         if (fileLine1.equals(fileLine2)) {
  73.                             lines.add(new LineItem(Type.SAME,fileLine1));
  74.  
  75.                         }
  76.                         else {
  77.                             lines.add(new LineItem(Type.REMOVED,fileLine1));
  78.                         }
  79.                         stopShitting=true;
  80.                     }
  81.  
  82.  
  83.                 } catch (Exception e) {
  84.                     lines.add(new LineItem(Type.ADDED,fileLine1));
  85.                 }
  86.             }
  87.             fileReader1.close();
  88.         } catch (Exception e) {}
  89.  
  90.         for (LineItem lineItem : lines) {
  91.             System.out.println(lineItem.getType()+" " + lineItem.getLine());
  92.         }
  93.  
  94.     }
  95.  
  96.  
  97.     public static enum Type {
  98.         ADDED,        //добавлена новая строка
  99.         REMOVED,      //удалена строка
  100.         SAME          //без изменений
  101.     }
  102.  
  103.     public static class LineItem {
  104.         public Type type;
  105.         public String line;
  106.  
  107.         public LineItem(Type type, String line) {
  108.             this.type = type;
  109.             this.line = line;
  110.         }
  111.  
  112.         public Type getType () {
  113.             return this.type;
  114.         }
  115.         public  String getLine () {
  116.             return this.line;
  117.         }
  118.     }
  119. }
  120. /*
  121. line1
  122. line2
  123. line3
  124. line4
  125. line5
  126. line0
  127. line1
  128. line2
  129. line3
  130. line5
  131. line4
  132. line5
  133. */
  134.  
  135. //-------------------------
  136. /*
  137. line1
  138.  
  139. line3
  140.  
  141. line5
  142.  
  143. line1
  144.  
  145. line3
  146.  
  147. line4
  148.  
  149. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement