The*_*ris 9 java io inheritance
代码
import java.io.*;
class ioTest1{
public static void main(String args[]){
System.out.println(System.in.getClass());
}
}
Run Code Online (Sandbox Code Playgroud)
System.in
属于BufferedInputStream
该类的返回.这是为什么?
由于类System
定义System.in
为InputStream
,我可以看到结果是如何不可能的.但是为什么以前的代码不能返回继承自的另一个类InputStream
,例如DataInputStream
?
Kay*_*man 12
正如在评论中解释说,有这将阻止任何System.in
被DataInputStream
,但考虑到BufferedInputStream
是没有廉价的InputStream
,包括数据的缓冲(总是一个好主意),它更有意义给予最普通类型的可能.
然后,开发人员可以使用例如a来封装缓冲流,DataInputStream
如果程序是通过管道二进制数据馈送,或者InputStreamReader
如果程序正在从用户接收文本数据.
System.in
是一个BufferedInputStream
因为它不需要任何其他东西.
归档时间: |
|
查看次数: |
675 次 |
最近记录: |