java - 如何将 .txt 文件中的 double 读入 ArrayList

标签 java arraylist java.util.scanner

我正在尝试从一个包含 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/

相关文章:

java - 如何在android应用程序中实现在adobe pdf reader中构建

java - 从 Java 运行 csstidy

java - 如何根据列表中的两个不同值获取 2 个计数并检查两个计数是否相等?

java - 扫描仪不要求输入,抛出无此类元素异常 - 多个扫描仪

java - 多次输入整数时出现InputMismatchException

java - 如何通过 while 循环一次处理输入一个数字

java - Activity 没效果

java - 按手机上的后退按钮有不同的行为来返回 Intent

java - 如何在同一个类的另一个方法中从 "onCreate()"访问 Arraylist 变量?

Java,使用参数列表进行构造函数调用?