Я пытался решить задачу используя Scanner вместо BufferedReader, но при проверке постоянно отваливалось на пунктах закрытия потоков, при том, что scanner я закрывал. + если для проверки листов использовать циклы, то тоже ругается, что не удаляются нужные строки. Кто-то может объяснить, почему этим методом "нельзя" решить эту задачу ? есть ли какие-то нюансы, почему такой вариант не проходит ? p.s. да, я знаю, что BufferedReader чуть быстрее работает, чем Scanner, у него больше буфер и он синхронизирован, но мы тут не работает с многопоточностью поэтому принципиальной разницы в использовании в этой задачи не вижу. по циклам: да, есть готовые методы которые делают тоже самое для листов, но у которых под капотом лежат те же циклы. Опять же непонятно почему нельзя через циклы это сделать. Это решение не работает и валидатором не проходит примерно по половине пунктов. При том, что по факту отрабатывает как нужно. Я создавал на компе файлы, записывал туда разные значения, одинаковые, разные, менял значения множество раз, каждый раз запускал и смотрел результат с выводом данных через sout. Все отрабатывало согласно условиям задачи, но при этом валидатор не проходит.
public static void main(String[] args) throws IOException {
    Scanner scanner = new Scanner(System.in);
    String firstFileName = scanner.nextLine();
    String secondFileName = scanner.nextLine();
    scanner = new Scanner(Files.newInputStream(Paths.get(firstFileName)));
    while (scanner.hasNextLine()) {
        allLines.add(scanner.nextLine());
    }

    scanner = new Scanner(Files.newInputStream(Paths.get(secondFileName)));
    while (scanner.hasNextLine()) {
        forRemoveLines.add(scanner.nextLine());
    }
    scanner.close();
    new Solution().joinData();
}

public void joinData() throws CorruptedDataException {
    for (String forRemoveLine : forRemoveLines) {
        if(!allLines.contains(forRemoveLine)) {
            allLines.clear();
            throw new CorruptedDataException();
        }
    }
    for (String forRemoveLine : forRemoveLines) {
        allLines.remove(forRemoveLine);
    }
}