黑马程序员技术交流社区

标题: IO问题 [打印本页]

作者: Inspur    时间: 2013-9-17 21:02
标题: IO问题
本帖最后由 杨增坤 于 2013-9-19 12:24 编辑

请高手指点
InputSream in = new FileInputStream(new File("demo.txt"));

InputSream in = new FileInputStream(demo.txt));
我查了下InputStream只有一个构造函数InputSream(),不明白怎么这么写的原理,请大家讲解一下

作者: 胡智    时间: 2013-9-17 21:16
你再看看FileInputStream这个类
InputSream in = new FileInputStream(new File("demo.txt"));
这句话用到了多态,父类引用指向子类对象。

作者: 1098918523    时间: 2013-9-17 21:26
InputStream的作用是标志那些从不同起源地产生输入的类。这些起源地包括(每个都有一个相关的InputStream子类):
(1) 字节数组
(2) String对象
(3) 文件
(4) “管道”,它的工作原理与现实生活中的管道类似:将一些东西置入一端,它们在另一端出来。 (5) 一系列其他流,以便我们将其统一收集到单独一个流内。
(6) 其他起源地,如Internet连接等(将在本书后面的部分讲述)。
除此以外,FilterInputStream也属于InputStream的一种类型,用它可为“破坏器”类提供一个基础类,以便将属性或者有用的接口同输入流连接到一起。
作者: (0.0)’    时间: 2013-9-17 21:39
首先,FileInputStream是InputSream 的子类,
而InputSream 是一个抽象方法,不能为其new对象
还有楼主提问太简单,没有详细,不知道你那些不明白
作者: 陈国柱    时间: 2013-9-17 21:42
InputStream确实只有一个构造函数,但经过多态后,它新建的对象可以指向其子类(FileInputStream)的新建对象,而FileInputStream的构造方法就有三个,其中一个是FileInputStream(String name), 也有了:
(1)InputSream in = new FileInputStream(demo.txt));
而FileInputStream的另一个构造方法,FileInputStream(File file) 对应的就是你的第一个代码,而这个构造函数由于传递参数是一个类,所以根据File这个类的其中一个构造方法,File(String pathname) 再新建一个对象,所以就变为
(2)InputSream in = new FileInputStream(new File("demo.txt"));
作者: yangxin540    时间: 2013-9-17 22:23
多态,哥们
作者: wumuzhong    时间: 2013-9-17 22:34
InputStream是抽象类,不能直接用自身的构造方法来实例化,必须通过子类来实例化,只是对象的多态性,FileinputStream是Inpustream的子类,可用于实例化,它的构造方法有:FileInputStream(File file) ,FileInputStream(FileDescriptor fdObj) ,FileInputStream(String name)
作者: 坚持。    时间: 2013-9-17 23:11
InputSream in = new FileInputStream(new File("demo.txt"));
这句话用到了多态,父类引用指向子类对象。
(new File("demo.txt"))
这句话是传递一个File类的对象。
把File 加载到的文件以对象的形式传递给FileInputStream
还有什么不懂的可以追问我。。。
作者: 李道福    时间: 2013-9-18 00:22
InputStream 是字节流的父类,它是一个抽象类,是不可被实例化的,FileInputStream是字节流的子类,这个很明显是父类引用指向子类对象,这是多态的体现
作者: 369833818    时间: 2013-9-18 07:17
父类的引用指向子类
作者: 杨增坤    时间: 2013-9-18 11:19
楼主,你好!
如果您的问题解决了,请把您问题的未解决更改为已解决
谢谢合作!





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2