我想從包含100,000個雙打的文件讀取雙精度,排列成兩個雙精度線,每個用空格分隔。就像這樣:如何從.txt文件讀取雙精度到一個ArrayList
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包文件夾中。有沒有特定的地方文件必須爲此工作?
編輯:作爲葉夫根尼·Dorofeev指出,該文件需要在程序找到它的項目文件夾(src文件夾的母公司)。
看起來像你沒有找到預期的文件。嘗試將文件的絕對路徑或打印出來,然後再閱讀它以檢查它是否存在。 –
我肯定會在開始時添加一個檢查以確保文件存在並且可讀,它可能非常像@LuiggiMendoza所說的那樣,它沒有找到該文件。 – Taegost