我正在尝试从一个包含 100,000 个 double 的文件中读取 double ,这些 double 排列成行,每行由一个空格分隔。像这样:
2.54343 5.67478
1.23414 5.43245
7.64748 4.25536
...
到目前为止我的代码:
Scanner numFile = new Scanner(new File("input100K.txt").getAbsolutePath());
ArrayList<Double> list = new ArrayList<Double>();
while (numFile.hasNextLine()) {
String line = numFile.nextLine();
Scanner sc = new Scanner(line);
sc.useDelimiter(" ");
while(sc.hasNextDouble()) {
list.add(sc.nextDouble());
}
sc.close();
}
numFile.close();
System.out.println(list);
}
此代码运行后,它会打印到控制台和空 ArrayList []
,我不明白为什么。
从文件中删除 getAbsolutePath()
给我这一行:
Scanner numFile = new Scanner(new File("input100K.txt"));
但是当我运行程序时,它给我一个 FileNotFoundException。我知道该文件存在,我可以看到它并打开它。
input100K.txt
与程序一起位于 src 包文件夹中。是否有特定的地方文件必须用于此工作?
编辑:正如Evgeniy Dorofeev 指出的那样,该文件需要位于项目文件夹(src 文件夹的父文件夹)中,程序才能找到它。
最佳答案
当你像这样创建 Scanner 时 new Scanner(new File("input100K.txt").getAbsolutePath())
;您正在扫描文件路径作为输入而不是文件本身。这样做 new Scanner(new File("input100K.txt"));
关于java - 如何将 .txt 文件中的 double 读入 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22177316/