не понимаю как решить последние пункты без того чтоб нарушать прошлые
Сделать метод joinData транзакционным, т.е. если произошел сбой, то данные не должны быть изменены.
1. Считать с консоли 2 имени файла.
2. Считать построчно данные из файлов. Из первого файла - в allLines, из второго - в forRemoveLines.
В методе joinData:
3. Если список allLines содержит все строки из forRemoveLines, то удалить из списка allLines все строки, которые есть в forRemoveLines.
4. Если условие из п.3 не выполнено, то:
4.1. очистить allLines от данных
4.2. выбросить исключение CorruptedDataException
Метод joinData должен вызываться в main. Все исключения обработайте в методе main.
Не забудь закрыть потоки.
Требования:
- Класс Solution должен содержать public static поле allLines типа List<String>.
- Класс Solution должен содержать public static поле forRemoveLines типа List<String>.
- Класс Solution должен содержать public void метод joinData() который может бросать исключение CorruptedDataException.
- Программа должна считывать c консоли имена двух файлов.
- Программа должна считывать построчно данные из первого файла в список allLines.
- Программа должна считывать построчно данные из второго файла в список forRemoveLines.
- Метод joinData должен удалить в списке allLines все строки из списка forRemoveLines, если в allLines содержатся все строки из списка forRemoveLines.
- Метод joinData должен очистить список allLines и выбросить исключение CorruptedDataException, если в allLines не содержатся все строки из списка forRemoveLines.
- Метод joinData должен вызываться в main.
package com.javarush.task.task17.task1721;
import java.io.IOException;
public class CorruptedDataException extends IOException {
}