Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
hasNextDouble()在Java中读取文件时返回false_Java_File_Double - Fatal编程技术网

hasNextDouble()在Java中读取文件时返回false

hasNextDouble()在Java中读取文件时返回false,java,file,double,Java,File,Double,我试图从一个文件中读取矩阵数据,但我无法找出错误所在。这是不起作用的代码: protected static double[][] getArrayFromFile(int new_rows, int new_cols, String file) { double[][] A = new double[new_rows][new_cols]; try { Scanner fileR

我试图从一个文件中读取矩阵数据,但我无法找出错误所在。这是不起作用的代码:

        protected static double[][] getArrayFromFile(int new_rows, int new_cols,
            String file) 
        {
        double[][] A = new double[new_rows][new_cols]; 
        try {
            Scanner fileReader = new Scanner(new File(file));
            for (int i = 0; i < new_rows; i++)
                for (int j = 0; j < new_cols; j++)
                {
                if(fileReader.hasNextDouble())
                    A[i][j] = fileReader.nextDouble();
                else
                    {
                    System.out.println("missing numbers in file");
                    break;
                    }
                }

            fileReader.close();
            }
        catch (FileNotFoundException e1) {
            e1.printStackTrace();
            }

        return A;
        }
我已经用了很长时间的程序编写了</St>C++和我刚刚开始用java工作,所以可能我有一些愚蠢的事情。有人能看出我犯的错误吗


编辑

这是我试图读取的文件:

 23.0       0.84825
188.5       6.87425
269.0       10.9595
321.0       13.08725

考虑到getArrayFrom文件会打开文件本身,因此区域设置建议似乎更可能出现在您认为您在文件中的位置

我建议插入行
fileReader.useLocale(Locale.US)。这将强制区域设置为小数点为“”的区域设置,这是解析数据所必需的


或者,找出默认语言环境中的小数点,并编辑文本文件以使用该小数点。

um。。。。文本文件好吗?或者至少是文件的开头和接下来的10-20行数据。
hasNextDouble()
返回false表示您不在文件中的位置。这真的很简单。扫描器不会将您的数据识别为双精度数据,可能是由于区域设置的差异?我使用代码设置了一个测试程序,并使用输入文件中数据的复制粘贴将其运行了4行2列。它运行得很好。这支持区域设置假设。我添加了这一行:
fileReader.useLocale(Locale.GERMANY)
在fileReader声明之后,立即复制该问题。这就解决了问题。我还需要将java.util.Locale添加到导入的包中。谢谢大家的回答!
 23.0       0.84825
188.5       6.87425
269.0       10.9595
321.0       13.08725