通过控制台进行任何输入的数据类型(如我使用BufferedReader类所做的那样)为String。之后,我们将其类型转换为需要查询的数据类型(如Inter.parseInt()为整数)。但是在C语言中,我们可以接受任何输入原始数据类型,而在Java中,所有输入类型都是Neccerily String。为什么是这样?
控制台输入实际上以一系列字节而不是字符串的形式读入。这是因为System.inAPI公开为InputStream。JDK1.5之前的典型包装(对于Scanner该类万岁!)是这样的:
System.in
InputStream
Scanner
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
即InputStreamReader字节流转换为字符流,然后将BufferedReader被用来做你的readLine()作业,或什么的。
InputStreamReader
BufferedReader
readLine()
所以这是一个String输出,因为你从你得到一个字符流的缓冲输出BufferedReader。
String