簡體   English   中英

如何解決java.util.NoSuchElementException?

[英]How to solve java.util.NoSuchElementException?

這是我的代碼:

    try {
        scan_movie_theater = new Scanner(new FileInputStream(new File("d:/movietheater.txt")));
    } catch (FileNotFoundException e2) {
        // TODO Auto-generated catch block
        e2.printStackTrace();
    }


    while((line = scan_movie_theater.next()) != null ){                 
        i = scan_movie_theater.nextInt();
        System.out.println(line);
        System.out.println(i);          
    }
    scan_movie_theater.close();

我想像一個字符串一個整數一樣讀取文件。 我可以做到這一點。 但是當我完成文件的讀取時。 我看到一個java java.util.NoSuchElementException。 我怎樣才能解決這個問題?

這是我的txt文件。

dsa 435
salon 123
xxxx 123214324

請參閱Javadoc。 Scanner.next()不返回null。 您必須在調用next()之前檢查hasNext()。

95%的代碼與問題無關,包括所有的Swing代碼。

您需要這樣做:

    while( scan_movie_theater.hasNext()){
        line = scan_movie_theater.next();
        i = scan_movie_theater.nextInt();
        System.out.println(line);
        System.out.println(i);          
    }

在當前的實現中,您將嘗試閱讀最后的內容。

希望這可以幫助。

當您在集合結束后嘗試訪問元素時,通常會出現此錯誤。 即由於列表已經結束而實際上不存在的元素。 解決方案:您必須檢查EOF以及hasNext()。 next()只是將光標移動到下一個元素,而您嘗試訪問的元素在EOF之后不存在。 因此,嘗試使用hasNext()來檢查下一個元素的存在,然后應用next()檢索下一個元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM