我正在创建bufferedReader的对象,但我不知道此声明中第二个new的含义是什么:

时间:2015-10-01 21:27:00

标签: java

我不知道这句话中第二个新内容的含义是什么pz有人帮助我并解释它吗?

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

1 个答案:

答案 0 :(得分:0)

您正在创建BufferedReader。这个特殊的类有一个特定的功能,它在输入上提供一个缓冲区,这样你就可以在你想要的块中找到它(行,...)。但是,由于一个简单的原因,它不能直接将文件或任何其他内容作为输入:避免重复。

想象一下,你想要一个不同类型的读者。如果BufferedReader还处理了文件等的直接读取,则必须复制新类中的所有功能。所以,相反,你说BufferedReader接受一个对象,该对象通过其接口的契约,以特定格式提供数据。这样BufferedReader就不需要关心从哪里读取,它只是完成它的工作。

这样做的副作用是你需要使用一个不同的对象,在这种情况下,InputStreamReader的实例处理实际从System.in检索数据。