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 次 |
| 最近记录: |