我想读取存储在文本文件中的double值并将这些值存储在数组中。输入文件在每行中都有一个值。以下是我的代码。
File file=new File("val.txt");
List<Double> value = new ArrayList<Double>();
Scanner input = new Scanner(file);
while(input.hasNext()){
value.add(scanner.nextDouble());}
但是我得到了Nouchelement例外。代码有什么问题?如何从文件中读取双值并存储它?
答案 0 :(得分:3)
好像你正在使用2台扫描仪。如果它有值,你正在检查一个,并且你试图使用另一个扫描仪添加这个值。
仅使用input
。
所以改成它:
File file=new File("val.txt");
List<Double> value = new ArrayList<Double>();
Scanner input = new Scanner(file);
while(input.hasNextDouble()){
value.add(input.nextDouble());
}
请注意Scanner
使用您的默认语言环境(如果您没有指定)。因此,如果此区域设置将小数分隔为,
,则您不会向List
添加任何内容。因此,请确保使用一个用小数点分隔小数。
Scanner input = new Scanner(file).useLocale(Locale.UK);