gpt4 book ai didi

java - FileReader如何构造FileInputStream和Input Reader?

转载 作者:行者123 更新时间:2023-12-02 11:15:23 25 4
gpt4 key购买 nike

我有一点疑问,这可能是一个非常蹩脚的问题,但请耐心等待。

我正在检查FileReader的源代码。因此,当 FilerReader 创建时,它会构造 FileInputStream。这是代码片段

public class FileReader extends InputStreamReader {


public FileReader(String fileName) throws FileNotFoundException {

super(new FileInputStream(fileName));

}

我的疑问是FileReader扩展了InputStreamReader,这里FileReader是InputStreamReader的子级,但是当调用FileReader的构造函数时,为什么会出现这种情况 "super(new FileInputStream(fileName));" ?

父类InputStreamReader中没有接受new FileInputStream(fileName)作为参数的构造函数或方法。

文件输入流具有以下层次结构..

 java.lang.Object
java.io.InputStream
java.io.FileInputStream

FileInputStream和InputStreamReader之间似乎没有任何关系..!

谁能帮我理解这一点?如何以及从何处调用 super(new FileInputStream(fileName));

最佳答案

There is no constructor or method which accepts new FileInputStream(fileName) as parameter in parent class which is InputStreamReader.

确实如此,但是FileInputStreamInputStream 的子类,因此 FileReader 构造函数正在调用 InputStreamReader​(InputStream in) 。请记住,您可以将子类实例(FileInputStream 对象)作为参数传递给接受父类(super class)实例(InputStream 对象)作为参数的方法或构造函数。

关于java - FileReader如何构造FileInputStream和Input Reader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50315817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com