2016-11-15 82 views
1

我正在處理一個程序,我需要掃描一個txt文件。 txt文件保證在不同類型的何時何地出現時遵循特定的格式。我嘗試在我的程序中利用這一點,並使用掃描儀將我認識的零件放入整數,以及雙打和字符串。當我運行我的程序它告訴我,我有一個類型不匹配異常,我知道由於所有我的類型相匹配的txt文件的格式,所以我怎麼讓IDE認爲這沒關係。這裏有一塊有問題的代碼是有幫助的。Java輸入不匹配異常與專門的txt文件

ArrayList<Student>studentList=new ArrayList<Student>();//makes a new Array list that we can fill with students. 
    FileInputStream in=new FileInputStream("studentList.txt");//inputs the text file we want into a File Input Stream 
    Scanner scnr=new Scanner(in);//Scanner using the Input Stream 
    for(int i=0;i<scnr.nextInt();i++)//we know the first number is the number of minor students so we read in a new minor that number of times 
    { 
     Undergrad j=new Undergrad();//make a new undergrad 
     j.setDegreeType("MINOR");//make the degree type minor because we know everyone in this loop is a minor. 
     j.setFirstName(scnr.next());//we know the next thing is the student's first name 
     j.setLastName(scnr.next());//we know the next thing is the student's last name 
     j.setID(scnr.nextInt());//we know the next thing is the student's ID 
     j.setGPA(scnr.nextDouble());//we know the next thing is the student's GPA 
     j.setCreditHours(scnr.nextDouble());//we know the next thing is the student's credit hours 
     studentList.add(j);//Finally, we add j to the arraylist, once it has all the elements it needs 
    } 
+0

哪一行會導致錯誤?錯誤是否發生在列表中的每個學生或特定的學生? – bradimus

+0

你可以發佈'studentList.txt'嗎?或者至少是造成問題的部分? – bradimus

回答

0

計算機程序做什麼告訴他們這樣做。

如果你創建一個程序,期望某些輸入,並且該程序告訴你「意外輸入」;然後是完全兩個邏輯的解釋:

  1. 您對輸入的佈局(即你把你的程序)是錯誤的假設
  2. 的假設是正確的,但不幸的是,輸入數據不關心這個

長話短說:這不是IDE在這裏弄錯了事情。

因此,「戰略」在這裏:

  1. 打開文本文件,在編輯器中
  2. 在你的IDE
  3. 運行調試器打開你的源代碼;或「手動運行你的代碼」;意思是:逐個閱讀指令;並且對於每個掃描儀操作,檢查掃描儀應該返回的內容;以及該文件在該位置實際包含的內容
+0

謝謝,原來我的循環控制條件調用nextInt()每次循環運行思想引起的問題:) –

+0

不客氣;很高興它有助於解決您的問題! – GhostCat