2013-03-22 104 views
-1

我從讀取文件中遇到一些問題。我認爲解釋發生的最好方法是向您展示代碼。從掃描儀讀取文件

File x = new File("D:\\player.txt"); 
    try { 
     e = new Scanner(x); 
     while (e.hasNext()) { 

      playername = e.next(); 
      playerlevel = e.next(); 
      playerstrenght = e.next(); 
      playerdefense = e.next(); 
      playersoul = e.next(); 

     } 
+1

你有什麼問題?請進一步闡述...你是否遇到異常,錯誤日誌? – 2013-03-22 20:20:41

+0

請發佈確切的問題。如果它是堆棧跟蹤後的異常。 – 2013-03-22 20:22:55

+0

@AliAlamiri異常線程 「main」 java.util.NoSuchElementException \t在java.util.Scanner.throwFor(來源不明) \t在java.util.Scanner.next(來源不明) \t在Player.playerchose(播放器.java:27) \t at Core.main(Core.java:10) – 2013-03-22 20:32:36

回答

1

每次你打電話next()你需要確保,它的元素閱讀,換句話說,你需要調用hasNext()。在這裏,您只需調用hasNext()一次,然後多次調用next()。如果它只有一個元素,它while循環進入,但隨後其他next()打電話,你會得到錯誤

File x = new File("D:\\player.txt"); 
try { 
    e = new Scanner(x); 
    while (e.hasNext()){ 

    playername = e.next(); 
    if(e.hasNext()){ 
    playerlevel = e.next(); 
    } 

    if(e.hasNext()){ 
    playerstrenght = e.next(); 
     } 
    if(e.hasNext()){ 
     playerdefense = e.next(); 
     } 
     if(e.hasNext()){ 
     playersoul = e.next(); 
     } 

} 

上面的代碼只是爲了告訴你在做什麼錯。這是問題的非常粗略的解決方案。

+0

他確實使用hasNext() – 2013-03-22 20:22:01

+0

@AliAlamiri不正確 – 2013-03-22 20:27:14

+0

playername = e.next(); e.hasNext(); playerlevel = e.next(); e.hasNext(); playerstrenght = e.next(); e.hasNext(); playerdefense = e.next(); e.hasNext(); playersoul = e.next(); 那樣? @AliAlamiri – 2013-03-22 20:30:38