“ BufferedReader”与“ java.io.BufferedReader”。有关系吗? [重复]

问题描述 投票:0回答:1

Java新手在这里。因此,我正在从Aristides S. Bouras撰写的《 Java and Algorithmic Thinking for the Complete Beginner》一书中学习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中使用上面的确切代码,但是出现以下错误:

enter image description here

我本来是想使用扫描器方法,用此article中的其他类型的输入方法来“解决”这个问题,但是对错误的任何见解都将受到高度赞赏。而且,我相信包括“ java.io”。对于第一行代码,连续三遍是不必要的吗?请谦虚地询问我是否有理由。谢谢大家!

java intellij-idea bufferedreader
1个回答
1
投票

BufferedReaderjava.io.BufferedReader的使用没有区别,除了人类阅读代码的方式不同。也就是说,使用一个与另一个相比,生成的代码不会更快/更慢,或者不会正确/不正确等。请注意,如果在代码中使用BufferedReader,则将需要包含import语句,以便编译器知道在哪里可以找到BufferedReader,例如:import java.io.BufferedReader;

尽管您通过调用cin.readLine()遇到了其他问题。以下示例显示了您正在执行的操作的最低版本(我省略了import语句,但您还可以包含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();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.