Не могу сказать что я хорошо понял это решение, частично переписал из лекции частично из решения задач на 18м уровне, но что тут происходит понимаю.
Как корректно закрыть потоки что бы валидатор устроило? Писал уже и в конце и в finaly и как только не пробовал.
Когда пишу inputStream.close() вне исключения то ругается на значение переменной null
package com.javarush.task.task13.task1318;
import java.io.*;
/*
Чтение файла
Чтение файла
1. Считать с консоли имя файла.
2. Вывести в консоль(на экран) содержимое файла.
3. Не забыть освободить ресурсы. Закрыть поток чтения с файла и поток ввода с клавиатуры.
Требования:
1. Программа должна считывать c консоли имя файла.
2. Программа должна выводить на экран содержимое файла.
3. Поток чтения из файла (FileInputStream) должен быть закрыт.
4. BufferedReader также должен быть закрыт.
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader( new InputStreamReader(System.in));
String fileName = reader.readLine();
BufferedReader buff = new BufferedReader(new FileReader(fileName));
InputStream inputStream = null;
BufferedInputStream buffer = null;
try {
inputStream = new FileInputStream(fileName);
buffer = new BufferedInputStream(inputStream);
while (buffer.available()>0) {
char c = (char)buffer.read();
System.out.print(c);
}
inputStream.close();
buffer.close();
} catch (Exception e) {
e.printStackTrace();
}
buff.close();
reader.close();
}
}