Почему метод contains всегда выдает false, хотя строки содержаться в обоих фалах? Вот метод joinData:
public void joinData() throws CorruptedDataException {
        boolean isContain = true;
        for (int i = 0; i < forRemoveLines.size(); i++){
            String str = forRemoveLines.get(i);
            if (!allLines.contains(str)){
                isContain = false;
                break;
            }
        }
        if (isContain){
            for (int i = 0; i < forRemoveLines.size(); i++){
                allLines.remove(forRemoveLines.get(i));
            }
        }
        else {
            allLines.clear();
            throw new CorruptedDataException();
        }

    }
}
Считывал данные из файлов таким образом:
BufferedReader readerfile1 = new BufferedReader(new FileReader(namefile1));
       BufferedReader readerfile2 = new BufferedReader(new FileReader(namefile2));

       while (readerfile1.ready()){
           allLines.add(readerfile1.readLine());
       }
       while (readerfile2.ready()){
           forRemoveLines.add(readerfile2.readLine());
       }