黑马程序员技术交流社区

标题: Scanner类异常 [打印本页]

作者: zhaoxd1992    时间: 2014-6-2 16:40
标题: Scanner类异常
本帖最后由 zhaoxd1992 于 2014-6-2 22:50 编辑
  1. import java.util.Scanner;
  2. public class Demo {

  3.         public static void main(String[] args) {
  4.         Scanner sc1=new Scanner(System.in);
  5.         String str=sc1.nextLine();
  6.         System.out.println(str);
  7.         sc1.close();

  8.         Scanner sc2=new Scanner(System.in);
  9.         sc2.nextLine();
  10.         sc2.close();

  11.         }

  12. }
复制代码

为什么报java.util.NoSuchElementException: No line found?
作者: 屈_zi    时间: 2014-6-2 17:31
系统的Sytem.in和Sytem.out也是输入输出流的子类。
关闭Scanner的时候,System.in流也关闭了,因此再次读取System.in的时候,就会读不到数据。
作者: More    时间: 2014-6-2 17:48
你把它关了当然会报错,不过对于Scanner类一般直接
                                Scanner console=new Scanner(System.in);
                                String s=console.nextLine();
这样就ok了  不需要关闭
作者: KevinSmart    时间: 2014-6-2 18:29
Scanner 一般是不需要关闭的
作者: 带眼镜的向日葵    时间: 2014-6-2 20:11
Scanner console=new Scanner(System.in);
作者: Autumn    时间: 2014-6-2 22:27
把键盘录入,都关了,能不报错吗
作者: zhaoxd1992    时间: 2014-6-2 22:48
屈_zi 发表于 2014-6-2 17:31
系统的Sytem.in和Sytem.out也是输入输出流的子类。
关闭Scanner的时候,System.in流也关闭了,因此再次读取 ...

原来是这样,谢谢




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