Advertisement
jaVer404

level17.lesson10.home09

Oct 8th, 2015
427
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.82 KB | None | 0 0
  1. package com.javarush.test.level17.lesson10.home09;
  2.  
  3. import java.io.*;
  4. import java.util.ArrayList;
  5. import java.util.Iterator;
  6. import java.util.List;
  7.  
  8. /* Транзакционность
  9. Сделать метод joinData транзакционным, т.е. если произошел сбой, то данные не должны быть изменены.
  10. 1. Считать с консоли 2 имени файла
  11.  
  12. 2. Считать построчно данные из файлов.
  13.    Из первого файла - в allLines, из второго - в forRemoveLines
  14.  
  15. В методе joinData:
  16. 3. Если список allLines содержит все строки из forRemoveLines,
  17.    то
  18.    удалить из списка allLines
  19.    все строки, которые есть в forRemoveLines
  20.  
  21. 4. Если список allLines НЕ содержит каких-либо строк, которые есть в forRemoveLines, то
  22.     4.2. выбросить исключение CorruptedDataException
  23.     4.1. очистить allLines от данных
  24.  
  25. Метод joinData должен вызываться в main. Все исключения обработайте в методе main.
  26. */
  27.  
  28. public class Solution {
  29.     public static List<String> allLines = new ArrayList<String>();
  30.     public static List<String> forRemoveLines = new ArrayList<String>();
  31.  
  32.     public static void main(String[] args) throws Exception{
  33.         String fileName1;
  34.         String fileName2;
  35.  
  36.  
  37.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  38.  
  39.         fileName1 = reader.readLine();
  40.         fileName2 = reader.readLine();
  41.  
  42.         addFromFile2List(fileName1, allLines);
  43.         addFromFile2List(fileName2, forRemoveLines);
  44.  
  45.         new Solution().joinData();
  46.     }
  47.  
  48.  
  49.     public void joinData () throws IOException {
  50.         if (allLines.containsAll(forRemoveLines)) {
  51.             for (Iterator<String> iterator = allLines.iterator(); iterator.hasNext();) {
  52.  
  53.                 if (forRemoveLines.contains(iterator.next())) {
  54.                     iterator.remove();
  55.                 }
  56.             }
  57.         }
  58.  
  59.         else if (!(allLines.containsAll(forRemoveLines))) {
  60.             allLines.clear();
  61.             throw new CorruptedDataException();
  62.  
  63.         }
  64.     }
  65.  
  66.     public static void addFromFile2List (String fileName, List<String>myList) throws IOException
  67.     {
  68.         BufferedReader myReader = new BufferedReader(new FileReader(fileName));
  69.         String line;
  70.         while ((line = myReader.readLine())!=null){
  71.             myList.add(line);
  72.         }
  73.     }
  74. }
  75. /*--------------------------------------------------------*/
  76. package com.javarush.test.level17.lesson10.home09;
  77.  
  78. import java.io.IOException;
  79.  
  80. public class CorruptedDataException extends IOException {
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement