Если обернуть попытку обращения к файлу в блок try
try{
String sourceFileName = reader.readLine();
InputStream fileInputStream = getInputStream(sourceFileName);
}
то потом в цикле while, во время уже чтения данных из файла, вот тут
while (fileInputStream.available() > 0)
переменная потока уже не видна, она не объявлена, и поэтому программа не компилируется. А если добавить объявление и инициализацию вне блоков try и catch
InputStream fileInputStream = null;
то компилятор уже ругается на то, что переменная уже инициализирована в блоках try и catch. Error:(15, 25) java: variable fileInputStream is already defined in method main(java.lang.String[]) Error:(20, 25) java: variable fileInputStream is already defined in method main(java.lang.String[])