java - 缓冲阅读器和扫描仪

标签 java

我想知道这是怎么回事。它给了我一个构造函数错误(java.io.InputSream)

BufferedReader br = new BufferedReader(System.in);
String filename = br.readLine();

最佳答案

BufferedReader 是装饰另一个阅读器的装饰器。 InputStream 不是阅读器。您首先需要一个 InputStreamReader。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

为了回应您的评论,这里是 readline 的 javadoc:

读行

public String readLine()
                throws IOException

    Read a line of text. A line is considered to be terminated by any one of a line feed ('\n'), a carriage return ('\r'), or a carriage return followed immediately by a linefeed.

    Returns:
        A String containing the contents of the line, not including any line-termination characters, or null if the end of the stream has been reached 
    Throws:
        IOException - If an I/O error occurs

要适本地处理这个问题,您需要将方法调用放在 try/catch block 中或声明它可以被抛出。

使用 try/catch block 的示例:

BufferedReader br = new BufferedReader (new InputStreamReader(System.in));

try{
    String filename = br.readLine();
} catch (IOException ioe) {
    System.out.println("IO error");
    System.exit(1);
} 

声明可能抛出异常的例子:

void someMethod() throws IOException {
    BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
    String filename = br.readLine();
}

关于java - 缓冲阅读器和扫描仪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5086549/

相关文章:

Java GUI 按钮不会将字符串打印到界面

java - 如何在android中将时间戳转换为日期?

java - 如何收集多个异步回调?

java - 按字母顺序排列字符串(不使用compareTo方法)

通过 != null 或 !str.equals(null) 检查 Java 字符串空值?

java - 为什么我会收到异常 : abstructmethoderror while calling setXmlStandalone() method in Java?

java - ThymeLeaf:使用 th:{attribute} 设置现有属性

java - Spark 抛出 "NoClassDefFoundError"尽管 jar 指示类存在

java - 为什么switch语句没有进入case 2?

java - Groovy StreamingTemplateEngine 使用 withCredentials 函数给出错误