爪哇新手来了。因此,我是从这本书中学习Java的,这本书是AristidS.Bouras的“完整初学者的Java和算法思考”,我一直致力于学习用户输入的语法。这是书中的原始代码片段
java.io.BufferedReader cin = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
String name;
int age;
name = cin.readLine();
age = Integer.parseInt(cin.readLine());
System.out.print("Wow, you are already" + age + "years old," + name + "!");
我尝试在IntelliJ中使用上述代码,但得到了以下错误:
我在考虑使用扫描仪方法在这个article中使用其他类型的输入方法来“走动”这个问题,但是对错误的任何洞察都将是非常感谢的。而且,我相信包括“java.io”在内。连续三次对第一行代码来说是不必要的,对吗?如果有理由的话,请不要再问我了。谢谢大家!
发布于 2020-01-22 01:19:26
使用BufferedReader
和java.io.BufferedReader
没有什么区别,只是人类读取代码的方式不同。也就是说,结果代码不会更快/更慢,或者使用一个或另一个来纠正/不正确等等。请注意,如果在代码中使用BufferedReader
,则需要包含一个导入语句,以便编译器知道在何处找到BufferedReader,如:import java.io.BufferedReader;
。
但是,通过调用cin.readLine()
,您会遇到其他事情。下面是一个示例,展示了您所做工作的最小版本(我省略了导入语句,但也可以包括import java.io.*;
)。编译器正在向您展示readLine()
存在问题,因为该方法被定义为抛出异常,而您的代码没有处理它。在IntelliJ中,我看到了以下错误消息:unreported exception java.io.IOException; must be caught or declared to be thrown
。
public static void main(String[] args) {
BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));
cin.readLine();
}
下面是一种修复代码的方法,以便处理readLine()
引发的异常
public static void main(String[] args) {
BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));
try {
cin.readLine();
} catch (IOException e) {
e.printStackTrace();
}
}
https://stackoverflow.com/questions/59851194
复制相似问题