Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javarush.test.level17.lesson10.home09;
- import java.io.*;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- /* Транзакционность
- Сделать метод joinData транзакционным, т.е. если произошел сбой, то данные не должны быть изменены.
- 1. Считать с консоли 2 имени файла
- 2. Считать построчно данные из файлов.
- Из первого файла - в allLines, из второго - в forRemoveLines
- В методе joinData:
- 3. Если список allLines содержит все строки из forRemoveLines,
- то
- удалить из списка allLines
- все строки, которые есть в forRemoveLines
- 4. Если список allLines НЕ содержит каких-либо строк, которые есть в forRemoveLines, то
- 4.2. выбросить исключение CorruptedDataException
- 4.1. очистить allLines от данных
- Метод joinData должен вызываться в main. Все исключения обработайте в методе main.
- */
- public class Solution {
- public static List<String> allLines = new ArrayList<String>();
- public static List<String> forRemoveLines = new ArrayList<String>();
- public static void main(String[] args) throws Exception{
- String fileName1;
- String fileName2;
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- fileName1 = reader.readLine();
- fileName2 = reader.readLine();
- addFromFile2List(fileName1, allLines);
- addFromFile2List(fileName2, forRemoveLines);
- new Solution().joinData();
- }
- public void joinData () throws IOException {
- if (allLines.containsAll(forRemoveLines)) {
- for (Iterator<String> iterator = allLines.iterator(); iterator.hasNext();) {
- if (forRemoveLines.contains(iterator.next())) {
- iterator.remove();
- }
- }
- }
- else if (!(allLines.containsAll(forRemoveLines))) {
- allLines.clear();
- throw new CorruptedDataException();
- }
- }
- public static void addFromFile2List (String fileName, List<String>myList) throws IOException
- {
- BufferedReader myReader = new BufferedReader(new FileReader(fileName));
- String line;
- while ((line = myReader.readLine())!=null){
- myList.add(line);
- }
- }
- }
- /*--------------------------------------------------------*/
- package com.javarush.test.level17.lesson10.home09;
- import java.io.IOException;
- public class CorruptedDataException extends IOException {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement