JAVA的标准输入

Python013

JAVA的标准输入,第1张

1.System.in.read()

从输入流读取下一个数据字节。返回

0

255

范围内的

int

字节值

所以即使你输入再多的东西,它只那第一个数据字节

你输入1111111111111111111111111111111111111,它拿到的就是1。1的字节值为48,所以你输出的就是

48+48=96

2.System.out的write是把指定的字节写入此流,字节。要根据平台输出,最好print或者println方法

public

class

U

{

public

static

void

main(String

args[])

throws

Exception

{

int

d

d

=

System.in.read()//为什么输入111111111111111111111111111111都行,看起来d好像是个字符串

d

=

d

+

d//输入一个整数为什么这条语句不能执行

System.out.print(d)//为什么不管输入什么,d总是原样输出

}

}

先理清一些概念:

每个控制台程序都有标准输入、标准输出、标准错误输出三个管道(句柄),这三个管道都可以重定向(即改变与管道关联的对象)。而标准输入默认是与键盘关联的(即从键盘获取输入),标准输出和标准错误输出默认是与显示器相关联的(即把数据和错误输出到显示器)。所以,从键盘输入不一定是标准输入(比如把数据输入到文本框也要用键盘,但这不叫标准输入,并不是所有的程序都有上面说的那3个管道),只有通过与标准输入管道关联的对象进行的输入才叫标准输入。

其次:

java把标准输入管道封装到了System.in(它是一个输入流对象,它包含了一个管道对象),所以可以说通过System.in进行的输入是标准输入,而Scanner只是对这个输入流对象的再一次封装,只要System.in没重定向,那用Scanner类从键盘输入当然也算是标准输入。