黑马程序员技术交流社区

标题: System.in使用两次怎么就报错了 [打印本页]

作者: theape    时间: 2016-7-22 23:26
标题: System.in使用两次怎么就报错了
代码如下:


作者: 1208124957    时间: 2016-7-23 00:26
好像是你上面的那个System.in流关掉了  下面就不能再打开关掉的流   注释掉br.close()就可以了
作者: 自娱自乐的朋朋    时间: 2016-7-23 01:21
1208124957 发表于 2016-7-23 00:26
好像是你上面的那个System.in流关掉了  下面就不能再打开关掉的流   注释掉br.close()就可以了 ...

但是它下面程序没用到br啊
作者: ylca    时间: 2016-7-23 08:19
你br包装了 System.in 你关了br相当于关了System.in
作者: theape    时间: 2016-7-23 10:10
哦知道了,这样改就好了



System.in这个是静态变量,返回的是输入流InputStream对象
public static final InputStream in“标准”输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。  
System.in 包装在装饰设计模式上,System.in流被强制关掉了
System.in是静态的类相关的,在类加载时开启,所有方法都调用的是这一个成员,当它的流被关闭,便无法开启,也就无法再次使用这个流,于是在被调用时就报错。



作者: 1208124957    时间: 2016-7-23 22:46
自娱自乐的朋朋 发表于 2016-7-23 01:21
但是它下面程序没用到br啊

你上面用了System.in   关掉了就不能再打开了   下面的那个System.in就不管用了    你下面的用了再关掉




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