当前位置: 代码迷 >> Java相关 >> 关于Scanner中close()的有关问题
  详细解决方案

关于Scanner中close()的有关问题

热度:27   发布时间:2016-04-22 19:31:56.0
关于Scanner中close()的问题,求助
import java.util.Scanner;

public class test01
{
public String name;
public String sex;
public int age;
public float height;
public String xingge;


public void input(){
Scanner scanner=new Scanner(System.in);
System.out.println("请输入姓名:");
name=scanner.next();
System.out.println("请输入性别:");
sex=scanner.next();
System.out.println("请输入年龄:");
age=scanner.nextInt();
System.out.println("请输入身高:");
height=scanner.nextFloat();
System.out.println("请输入性格:");
xingge=scanner.next();
scanner.close();
}





public static void main(String[] args) {
test01 t=new test01();
t.input();
System.out.println("第一个人叫"+t.name+","+t.sex+",年龄"+t.age+",身高"+t.height+",性格"+t.xingge);
t.input();
System.out.println("第二个人叫"+t.name+","+t.sex+",年龄"+t.age+",身高"+t.height+",性格"+t.xingge);


}
}

这个程序编译通过,但是运行出错,错误如下
请输入姓名:
zhangsan
请输入性别:
lisi
请输入年龄:
24
请输入身高:
1.8
请输入性格:
neixiang
第一个人叫zhangsan,lisi,年龄24,身高1.8,性格neixiang
请输入姓名:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at test01.input(test01.java:15)
at test01.main(test01.java:35)

问题出在scanner.close();这一句,去掉就没问题了,我想知道为什么会出现这种错误?
------解决思路----------------------
不同对象关联的同一个输入流,任何一个关闭它其它都没法用了。
  相关解决方案