Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Unknown Source)
at java.io.InputStreamReader.<init>(Unknown Source)
//at InputStreamReader inStream = new InputStreamReader(fis);
Run Code Online (Sandbox Code Playgroud)
另外,我应该添加抛出IOException,FileNotFoundException到main还是使用try {}?
System.out.print("Enter the filename: ");
Scanner stdin = new Scanner(System.in); //Keyboard input
String fileName=stdin.nextLine();
FileInputStream fis = null;
try {
fis = new FileInputStream(fileName);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
InputStreamReader inStream = new InputStreamReader(fis);
BufferedReader in = new BufferedReader(inStream);
Run Code Online (Sandbox Code Playgroud)
你犯了一个经典的错误:捕获异常(在这种情况下是FileNotFoundException)而不是实际从中恢复.因此,当文件打开失败时,您将传递一个null参数InputStreamReader(...),这就是导致NPE.
另外,我应该添加抛出IOException,FileNotFoundException到main还是使用try {}?
这取决于您的要求.您必须决定是否要让异常传播到main(可能必须放弃),或者您是否希望当前方法尝试恢复.例如,你可以要求一个不同的文件名......
| 归档时间: |
|
| 查看次数: |
12619 次 |
| 最近记录: |