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,....]
主要问题在于扫描程序对象的实例化。在这种情况下,您需要将File
对象传递给它,而不仅仅是一个字符串。请参考官方documentation以获取建议。
第二,您需要使用while循环。 if语句仅执行一次,但是您希望扫描器在文件中有信息的同时继续查找。
第三,不要使用数组来存储值。这太冒险了,因为您需要事先知道数组的大小,这意味着您将需要循环两次,这将导致效率低下,或者您正在执行此处的硬编码。如果有人要在文件中添加或删除值,则会得到意外的结果。而是使用动态数据结构,例如List
。
public static void main(String[] args) throws FileNotFoundException {
String filepath = "file.txt";
Scanner scanner = new Scanner(new File(filepath));
List<Double> list = new ArrayList<>();
while (scanner.hasNextDouble()) {
list.add(Double.valueOf(scanner.next()));
}
System.out.println(list.get(0));
}