文档章节

Scanner类Java.util.NoSuchElementException 异常

不开心的时候不要学习
 不开心的时候不要学习
发布于 2017/02/24 08:53
字数 286
阅读 19
收藏 0
点赞 0
评论 0

今天使用Scanner类从控制台获得数据时,报了Java.util.NoSuchElementException 异常。

下面是问题代码段

public static void init(LinkList l){
        for(int i=0;i<3;i++){
            System.out.println("请输入第"+i+"个值");
            Scanner temp=new Scanner(System.in);
            int len=temp.nextInt();
            l.addNode(len);
            temp.close();
        }
    }

当要输入第二个数据的时候就会报错 。 这是异常信息

请输入第0个值
2
请输入第1个值
Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at com.zji.List.LinkList.init(LinkList.java:33)
    at com.zji.List.LinkList.main(LinkList.java:60)

这是因为temp.close()在for循环中关闭的原因,只要把temp.close(),写在for循环外面就可以了。

刚开始我想我循环一次new 一个Scanner 然后给他关了 ,再循环再开不行吗? 不可以的哦! 这是因为 你的Scanner.close会调用System.in.close方法,把这个System.in关闭了。你之后new Scanner并不会帮你开启System.in的流,所以报错了.

下面是close方法的源码可以参考一下

public void close() {
      if (closed)
          return;
      if (source instanceof Closeable) {
          try {
              ((Closeable)source).close();
          } catch (IOException ioe) {
              lastException = ioe;
          }
      }
      sourceClosed = true;
      source = null;
      closed = true;
  }

感谢大佬们的帮助谢谢你们!

© 著作权归作者所有

共有 人打赏支持
不开心的时候不要学习
粉丝 23
博文 521
码字总数 169450
作品 0
唐山
程序员
小朋友学Java(13):控制台输入

C语言用scanf来输入,C++用cin来输入,java则用Scanner来输入。 程序 运行结果 说明 Scanner这个类是Java 1.5引入的,具体位于java.util.Scanner中。所以开头用import java.util.*; 表示把j...

翡翠森林Z
2017/12/17
0
0
jedis异常:NoSuchElementException: Timeout waiting for idle object

项目线上环境发现:java.util.NoSuchElementException: Timeout waiting for idle object 问题原因:不应该在try中释放资源,而应该在finally中处理。虽然是非常基础的语法,但还是有可能会写...

Airship
04/24
0
0
jedis异常:Timeout waiting for idle object

项目线上环境发现:java.util.NoSuchElementException: Timeout waiting for idle object 问题原因:不应该在try中释放资源,而应该在finally中处理。虽然是非常基础的语法,但还是有可能会写...

凯文加内特
2015/11/28
412
0
java 键盘输入多种方法

实例程序: 1、利用 Scanner 实现从键盘读入integer或float 型数据 //import java.io.;import java.util.;public class InputTest{public static void main(String[] args){ Scanner in = ne......

测试-雨
2015/10/21
233
0
五、JAVA基础--异常、断言、日志

处理异常错误 1)异常对象都是派生于Throwable类的一个实例,分成Error和Exception。 2)Error描述java运行时系统的内部错误和资源耗尽错误。应用程序不应该抛出这种异常。 3)Exception又分为I...

cnslp
2017/04/24
0
0
Java_07_02 异常处理

1:异常处理 Java中的异常体系结构: 所有异常类: 都是这个类的子类: java.lang.Throwable – 可以抛出的。 java.lang.Throwable The class is the superclass of all errors and exceptio...

Harry_sir
2015/12/14
17
0
对jetty上部署的web进行websocket压测时遇到的一个jetty自身的奇怪nullpointer问题

@项籍20130121 你好,想跟你请教个问题: jetty version:8.1.3.v20120416 (1)场景: 使用jetty作为websocket容器,测试最大连接数试验(目前20000连接)。 (2)问题: 短时间大量创建web...

-醉-
2013/06/28
3.5K
3
ibatis3的一个小问题

Exception in thread "main" java.lang.ExceptionInInitializerError at com.ibatis.test.TestMain.main(TestMain.java:23) Caused by: java.lang.RuntimeException: Error occurred. Cause:......

coding花满楼
2012/02/22
886
1
Redis客户端常见异常分析

一.无法从连接池获取到连接 JedisPool中的Jedis对象个数是有限的,默认是8个。这里假设使用的默认配置,如果有8个Jedis对象被占用,并且没有归还,如果调用者还要从JedisPool中借用Jedis,就...

杀神之疯子
2017/06/02
0
0
java 异常处理,怎样使catch里面的语句执行后,继续执行try里面的语句

package uhz8_8; import java.util.Scanner; /** * 异常处理模仿用户登录 *@author zhufaming * */ public class User { public static void userLogin() throws BaseException{ Scanner scn......

zhufaming
2014/08/09
10.6K
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Kafka设计解析(一)- Kafka背景及架构介绍

原创文章,转载请务必将下面这段话置于文章开头处。(已授权InfoQ中文站发布) 本文转发自技术世界,原文链接 http://www.jasongj.com/2015/03/10/KafkaColumn1 摘要   Kafka是由LinkedI...

mskk
10分钟前
0
0
使用Service Mesh整合您的微服务架构

在微服务架构的世界中,它正在达到这样的程度,即管理系统的复杂性对于利用它带来的好处变得至关重要。 目前,如何实现这些微服务不再是一个问题,因为有很多可用的框架(Spring Boot,Vert....

xiaomin0322
13分钟前
0
0
看看 LinkedList Java 9

终于迎来了 LinkedList 类,实现的接口就有点多了 Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, List<E>, Queue<E>。LinkedList是一个实现了List接口和Deque接口的双端链......

woshixin
32分钟前
0
0
算法 - 冒泡排序 C++

大家好,我是ChungZH。今天我给大家讲一下最基础的排序算法:冒泡排序(BubbleSort)。 冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大(可以相反),就交换他们两个。 对每...

ChungZH
35分钟前
0
0
jquery ajax request payload和fromData请求方式

请求头的不同 fromData var data = { name : 'yiifaa'};// 提交数据$.ajax('app/', { method:'POST', // 将数据编码为表单模式 contentType:'application/x-ww...

lsy999
37分钟前
0
0
阿里P7架构师,带你点亮程序员蜕变之路

前言: Java是现阶段中国互联网公司中,覆盖度最广的研发语言。 掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。 有不少朋友问,成为Java架...

Java大蜗牛
38分钟前
1
0
Ecstore 在没有后台管理界面(维护)的情况如何更新表的字段

window 系统: 切换到:app\base 目录下: C:\Users\qimh>d: D:\>cd D:\WWW\huaqh\app\base 执行:D:\WWW\huaqh\app\base>cmd update linux 系统: 1># cd /alidata/www.novoeshop.com/app/......

qimh
43分钟前
0
0
设计模式-策略模式

策略模式 解释 对工厂模式的再次封装,使用参数控制上下文信息(将工厂返回的实例赋值给context field) 不会返回bean实例,只是设置对应的条件 调用context的方法(调用field的方法) 用户只...

郭里奥
46分钟前
0
0
python使用有序字典

python自带的collections包中有很多有用的数据结构可供使用,其中有个叫OrderedDict类,它可以在使用的时候记录元素插入顺序,在遍历使用的时候就可以按照原顺序遍历。 a = {"a":1,"b"...

芝麻糖人
今天
0
0
RestTemplate HttpMessageConverter

RestTemplate 微信接口 text/plain HttpMessageConverter

微小宝
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部