Обязательно использовать FileInputStream ? И не понятно, почему второй пункт не проходит.
package com.javarush.task.task13.task1318;
import java.io.*;
/*
Чтение файла
*/
public class Solution {
static BufferedReader in;
static BufferedReader reader;
public static void main(String[] args) throws IOException {
try {
in = new BufferedReader(new InputStreamReader(System.in));
String fileName = in.readLine();
reader = new BufferedReader( new FileReader(fileName));
StringBuilder srcFile = new StringBuilder();
String inSrcFile;
while (reader.ready()){
inSrcFile = reader.readLine();
if (inSrcFile==null){
break;
}
srcFile.append(inSrcFile);
}
System.out.print(srcFile);
} finally {
in.close();
reader.close();
}
}
}