2D数组的InputMismatchException

时间:2014-02-20 05:56:04

标签: java multidimensional-array java.util.scanner inputmismatchexception

检查以下评论。

我正在使用......

Scanner input = new Scanner("rates.txt");

应该使用......

Scanner input = new Scanner(new File("rates.txt"));

3 个答案:

答案 0 :(得分:0)

更改如下:  在你的代码中

       Scanner input = new Scanner("rates.txt");

应该是:

       Scanner input = new Scanner(new File("rates.txt"));

将其保留在 try-catch 中,或在main方法中添加抛出异常

如果找不到文件,也要提供文件的完整路径。

答案 1 :(得分:0)

使用读卡器代替扫描仪。

BufferedReader br = new BufferedReader(new FileReader("rates.txt"));
String line;
while ((line = br.readLine()) != null) {
    // parse line here . . .
}

答案 2 :(得分:0)

当您将String传递给Scanner构造函数时,您告诉它输入将来​​自String本身。您应该使用File对象或等效的东西。这是:

import java.util.Scanner;
import java.io.File;
import java.io.IOException;

public class TestFile
{
    public static void main(String[] args)
    {
        Scanner input = null;

        try
        {
            input = new Scanner(new File("rates.txt"));

        }
        catch (IOException ioe)
        {
           ioe.printStackTrace();

        }

        int numRows    = 7;
        int numColumns = 7;

        Double[][] ratesArray = new Double[numRows][numColumns];

        while(input.hasNext())
        {
            for(int i = 0; i < ratesArray.length; i++)
            {
                for(int j = 0; j < ratesArray[i].length; j++)
                {
                    ratesArray[i][j] = input.nextDouble();
                    System.out.print(ratesArray[i][j] + "\t");

                } // for j

                System.out.print("\n");

            } // for i

        } // while

        input.close();

    } // main()

} // class TestFile