0

このコードを実行すると、InputMismatchException が発生します (コメントを参照)。なぜこれが起こるのですか?読みたいファイルには、スペースで区切られた整数のリストが含まれています。

以下は主な方法です。

    public static void main (String[] args) throws Exception {

    Scanner in = new Scanner(System.in);
    System.out.println("Enter file name: ");    
    String fname = in.nextLine();   

    System.out.println("Enter the starting x coordinate: ");
    int x = in.nextInt();
    System.out.println("Enter the starting y coordinate: ");
    int y = in.nextInt();

    Coordinate startPosition = new Coordinate(x, y);

    in.close();

    WaterMesa wm = new WaterMesa(fname);    

    Scanner fs = new Scanner(fname);

    grid_width = fs.nextInt();      // exception occurs here
    grid_height = fs.nextInt();     // and possibly here too?

    int i = 0;
    for (int r = 0; r < grid_width; r++) {  
        for (int c = 0; c < grid_height; c++) {
            i = fs.nextInt();
            grid[r][c] = i; 
            JPanel panel = new JPanel();
            primary.add(panel);

    fs.close();

    wm.canFlowOffMap(startPosition); 
        }
    }
    }

................................................................... ................................................................... ................................................................... .

4

1 に答える 1

0

ファイルの内容ではなく、ファイル名の文字列をスキャンしています。に変更Scanner fs = new Scanner(fname);Scanner fs = new Scanner(new File("/path/to/your/files/"+fname));ます。

于 2015-04-10T03:14:59.423 に答える