-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.");
        }    
    }
}

(第一次把它放在这里,所以请在评论中写下我能做些什么来让它变得更好)所以这是我的文件,我不明白为什么这个程序不能运行。

这个文件必须打印出来

      * * *
      * * *
      * * *

我现在得到的输出是

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)

提前感谢您的帮助。

4

2 回答 2

1

发生的事情是Scanner.nextInt()它在读取文件时没有找到一个整数,所以它抛出了一个InputMismatchException.

于 2013-10-02T21:53:12.977 回答
1

您的代码在我的机器上运行,所以我只能得出结论,您的 Asterix.txt 文件版本不好。确保它是正确的,并尝试使用完整路径来引用它,以确保您使用的是正确的路径。例如new File("C:\\Temp\\asterix.txt");

还有几点:

  1. for (int loop = 0; loop < 4; loop++)应删除该行以实现您列出的输出。
  2. 您应该关闭您的扫描仪对象。
  3. 不要以大写字母开头变量名(Dim 应该是暗淡的)。
于 2013-10-02T22:03:35.127 回答