Java中Scanner的輸入資料流的關閉問題

來源:互聯網
上載者:User

標籤:關閉   out   inpu   public   class   key   put   一個   oid   

為什麼Scanner in語句只能關閉一次,且對於其他任何Scanner輸入資料流也關閉?

代碼

  1. import java.util.Scanner;  
  2.   
  3. public class ScannerTest {  
  4.   
  5.     public static void main(String[] args) {  
  6.         Scanner inputA = new Scanner(System.in);  
  7.         Scanner inputB = new Scanner(System.in);  
  8.         int numberA = input1.nextInt();  
  9.         int numberB = input1.nextInt();  
  10.         inputA.close();  
  11.         System.out.println(numberA);  
  12.         System.out.println(numberB);  
  13.     }  
  14.   
  15. }  

運行後java報錯“java.util.NoSuchElementException.”

查閱API後可知 
System.in“標準”輸入資料流。此輸入資料流已開啟並準備提供輸入資料。通常,此輸入資料流對應鍵盤輸入、由主機環境或使用者指定的另一個輸入源。 
當inputA調用close()方法後,System.in這個流將會關閉,而這種關閉將是永久性的,導致之後將不能接受任何資料,從而引發java.util.NoSuchElementException的錯誤,而且將“Scanner inputB = new Scanner(System.in);”這行代碼移動到“inputA.close();”後面依舊是同樣的錯誤,則說明當流關閉一次後就再也無法重新開啟了。

                                             --youhow

                                             如有錯誤敬請批評指正!謝謝!

Java中Scanner的輸入資料流的關閉問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.