下面的代码给出错误,它找不到readLine((方法。 但是,如果我将 readLine(( 替换为 read(( 并进行一些相应的更改,它就可以工作。
import java.io.*;
class Console {
public static void main (String[] args) throws IOException {
Reader in = null;
String c;
try {
in = new BufferedReader (new InputStreamReader(System.in));
System.out.println("type 'quit' to quit!");
do {
c=in.readLine();
System.out.println(c);
} while(!c.equals("quit");
} finally {
if(in!=null) in.close();
}
}
}
这里哪一部分有错?
你应该将你的"in"声明为缓冲读取器,而不是读取器:
BufferedReader in = null;
读取器接口不存在 readLine(( 方法。
read(( 方法是在 Reader 接口中定义的,因此任何扩展/实现它的接口或类也将具有 read(( 方法。但是,readLine(( 方法仅在 BufferedReader 接口中定义。即使声明为 Reader 的对象恰好在运行时是 BufferedReader 的实例,在编译时也会出错,因为只有声明的类型很重要。