Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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
inputMismatchException Java从纯文本文件读取加倍_Java - Fatal编程技术网

inputMismatchException Java从纯文本文件读取加倍

inputMismatchException Java从纯文本文件读取加倍,java,Java,使用 给出了不匹配错误,我不知道为什么。。。有人知道怎么回事吗 输入文件只是一堆类似5.0的双精度文件 好的,这是代码片段 double variable = inputFile.nextDouble(); 输入文件是此格式的纯文本文档.txt String fileName; Scanner scanner = new Scanner(System.in); System.out.println("\nEnter file name that contains the matrix and

使用

给出了不匹配错误,我不知道为什么。。。有人知道怎么回事吗

输入文件只是一堆类似5.0的双精度文件

好的,这是代码片段

 double variable = inputFile.nextDouble();
输入文件是此格式的纯文本文档.txt

String fileName;
Scanner scanner = new Scanner(System.in);
System.out.println("\nEnter file name that contains the matrix and vector: ");
fileName = scanner.nextLine();
Scanner inputFile = new Scanner(fileName);


double a1 = inputFile.nextDouble();
我不明白为什么不把它们当作双打

至于它期望的文件格式是什么。。。我想是二进制的吧?这不是默认值吗?我没有在代码中指定…

事先添加检查

5.0 4.0 -3.0
4.0 2.0  5.0
6.0 5.0 -2.0
-13.0 4.0 12.0
以确定其失败的原因和具体位置

可能是您的分隔符不是
,并且您没有手动指定它。 要设置分隔符,请调用
useDelimiter(…)
函数之一


输入不匹配异常是扫描程序试图将字符串解析为无法解析的格式的结果。例如,对字符串(如“3.3米”)调用
Double.parseDouble
,将引发NumberFormatException。正如iccthedral所添加的,即使是像“3.0”(注意空格)这样重要的字符串也会产生NFE

当在
Scanner.nextDouble()
中发生NumberFormatException时,NFE将被包装并在InputMismatchException中重新调用,这就是此处发生的情况


为了确保您的扫描仪可以读取double,请调用
Scanner\hasNextDouble()
,只有在扫描仪具有下一个double时才继续获取double。

请发布此错误。我们还可以看看您如何声明
输入文件
对象(我假设它是
扫描仪
)以及文件本身的一些示例?输入文件是什么类型的?它需要二进制编码还是文本编码?文件
扫描仪的构造函数错误。请参阅下面的“我的更新”。)@正六面体。你认为我应该把它作为另一个例子添加到答案中吗?
if (inputFile.hasNextDouble()) { 
 double variable = inputFile.nextDouble();
} else if (inputFile.hasNext()) {
 System.out.println("Not double at token " + inputFile.next());
}