Advertisement
jaVer404

level19.lesson10.bonus01(second scratch)+

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