使用新的<class name =“”>(新的<class name =“”>(文件名))

时间:2019-03-20 22:17:13

标签: java

inputStream = new BufferedReader(new FileReader(“ xanadu.txt”));

在上面的代码行中,我不理解新的BufferReader中是否包含新的FileReader?有人可以帮助我理解代码的逻辑吗?

1 个答案:

答案 0 :(得分:0)

基本上new FileReader("xanadu.txt")创建一个FileReader类型的新对象,这种类型的读取器用于读取字符文件。我还建议阅读docs,以获取JDK中可用的不同现有阅读器的更多信息,并且还可以实现不同的目的。例如。如果您想读取原始字节而不是字符,也可以使用FileInputStream代替FileReader

如果创建新的BufferedReader,则必须在初始化期间传递Reader类型的对象。 BufferedReader使用缓冲功能扩展了传递的阅读器。我建议使用this link以获得有关如何在不同的Reader实现中使用的更多信息。最后,我建议看一下Java文档,以进一步了解Buffered Reader和可用的方法,这些方法可以“扩展”传递给Reader的{​​{1}},并具有附加功能。 / p>

甚至更普遍

BufferedReader

此构造仅做=>创建类型为new ClassNameA (new ClassNameB(parameter))的对象,并在初始化期间将其通过构造函数传递给新创建的类型为ClassNameB的对象。因此,基本上,您正在创建两个对象,并将第一个对象传递给第二个对象的构造函数。初始化顺序是由内到外按方括号。