Считать с консоли имя файла. Вывести в консоль все строки из файла, которые содержат всего 2 слова из списка words. Закрыть потоки. Пример: words содержит слова А, Б, В Строки: В Б А Д //3 слова из words, не подходит Д А Д //1 слово из words, не подходит Д А Б Д //2 слова — подходит, выводим Требования: 1. Класс Solution должен содержать публичное статическое поле words типа List, которое должно быть сразу проинициализировано. 2. Класс Solution должен содержать статический блок, в котором добавляются три слова в список words. 3. Программа должна считывать имя файла с консоли (используй BufferedReader). 4. BufferedReader для считывания данных с консоли должен быть закрыт. 5. Программа должна считывать содержимое файла (используй FileReader). 6. Поток чтения из файла (FileReader) должен быть закрыт. 7. Программа должна выводить в консоль все строки из файла, которые содержат всего 2 слова из списка words. Вот так ругается на FileReader:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
StringBuilder sb = new StringBuilder();
for (String s : words) {
    sb.append(s.trim()).append("|");
}
Pattern p = Pattern.compile(sb.substring(0, sb.length() - 1));
FileReader fileReader = new FileReader(fileName);
BufferedReader reader1 = new BufferedReader(fileReader);
Вот так ругается на FileReader + BufferedReader:
StringBuilder sb = new StringBuilder();
for (String s : words) {
    sb.append(s.trim()).append("|");
}
Pattern p = Pattern.compile(sb.substring(0, sb.length() - 1));
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
FileReader fileReader = new FileReader(fileName);
BufferedReader reader1 = new BufferedReader(fileReader);
А вот так - проходит на ура:
StringBuilder sb = new StringBuilder();
for (String s : words) {
    sb.append(s.trim()).append("|");
}
Pattern p = Pattern.compile(sb.substring(0, sb.length() - 1));
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
FileReader fileReader = new FileReader(fileName);
BufferedReader reader1 = new BufferedReader(fileReader);