【发布时间】:2020-05-23 18:52:55
【问题描述】:
我试图扫描一个包含双精度数组的文件。我正在使用下面的代码,但它只为每个条目输出0.0。为什么会这样,我该如何解决?
Scanner scanner = new Scanner("file.txt");
double[] array = new double[256 * 256];
for (int i = 0; i < array.length; i++) {
if (scanner.hasNextDouble()) {
array[i] = scanner.nextDouble();
}
}
System.out.println(array[0]);
我正在扫描的文件的一个例子是
0.22131145 0.22131145 0.22131145 0.22841525 0.22841525 ...
【问题讨论】:
-
添加文件内容也在更新的问题中
-
[不被视为有效的数字字符,因此hasNextDouble()为它返回false。由于扫描仪没有消耗任何数据,hasNextDouble会一遍又一遍地测试相同的值,直到循环结束。 -
该数组是如何写入文件的?它是用来表示 JSON 的吗?如果是,则使用 JSON 解析器将其解析回数组。
标签: java arrays file io java.util.scanner