2013-10-02 61 views
-1
import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Scanner; 

public class Asterisks 
{ 
    public static void main(String[] args) 
    { 
     try 
     { 
      File dataFile = new File("Asterisks.txt"); \\ this file says "S 3" 
      Scanner in = new Scanner(dataFile); 
      String shapeType = in.next(); 
      int Dim = in.nextInt(); 

      if (shapeType.equals("S")) 
      { 
       for(int loop = 0; loop < 4; loop ++) 
       { 
        for (int line = 0; line < Dim; line ++) 
        { 
         for(int elt = 0; elt < Dim; elt ++) 
         { 
          System.out.println(" *"); 
         } 
         System.out.println(" "); 
        }            
       }             
      }   
     } 
     catch (FileNotFoundException e) 
     { 
      System.out.println("Data file not found."); 
     }  
    } 
} 

(第一次把它放在這裏,請寫在評論我能做些什麼,使之更好) 所以這是我的文件,我不明白的是,爲什麼這個程序不運行。錯誤處理Java程序

此文件具有打印出來

 * * * 
     * * * 
     * * * 

輸出IM現在得到的是

Exception in thread "main" java.util.InputMismatchException 
    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 Asterisks.main(Asterisks.java:15) 

感謝您的幫助提前。

+2

請同時發佈您目前收到的輸出。 –

+1

你是什麼意思,「這個程序不運行」?是否有編譯器錯誤信息?運行時異常棧跟蹤?錯誤的輸出? – rgettman

+0

喲不通過文件,所以,這是第一個錯誤。你不會把任何東西放到文件中,所以,顯然你不能看到文件中的任何東西。 – Zeus

回答

1

你的代碼在我的機器上工作,所以我只能斷定你的Asterix.txt文件版本不好。確保它是正確的,並嘗試引用它的完整路徑,以確保您使用的是正確的。例如new File("C:\\Temp\\asterix.txt");

而且幾點:

  1. for (int loop = 0; loop < 4; loop++)應該被除去,從而達到您所列出的輸出。
  2. 您應關閉掃描儀對象。
  3. 不要用大寫字母開頭(Dim應該是暗淡的)。
+0

我如何參考完整路徑? –

+0

在基於Windows的系統的答案中有一個例子。並檢查你的文本文件真的只是「S 3」,因爲當我運行它的時候,它就可以工作。 – jimjim

+0

我知道了,謝謝 –

1

發生什麼事是Scanner.nextInt()在讀取文件時未找到整數,所以它拋出了一個InputMismatchException

+0

那麼我該如何重拍掃描儀?我應該只是「Scanner.in」嗎?或者我還應該做些什麼? –

+0

@ Mr.Stack不,掃描儀很好。你只需要弄清楚它爲什麼在讀取文件時找不到整數。我建議在'Scanner.next()'上做一個'System.out.println()',看看顯示的是什麼。 –