我有一个读取文件的方法,然后将值传递给名为point的构造函数。还有另一种叫做Track的类,它是显示旅程的点的集合。
读取文件的方法未抛出文件,未发现异常,我不确定为什么。我尝试使用try-catch方法失败,并帮助获取异常以深入了解为什么不受欢迎。
public static void readFile(String filename)
throws FileNotFoundException {
int i = 0;
ArrayList<String> textFile = new ArrayList<>();
Scanner input = new Scanner(System.in);
File file = new File(input.nextLine());
input = new Scanner(filename);
while (input.hasNext()) {
String letter = input.next();
textFile.add(i, letter);
i++;
}
input.close();
for (int j = 1; j < textFile.size(); j++) {
ZonedDateTime times;
double longitude = 0;
double latitude;
double elevation;
String s = textFile.get(j);
String[] half = s.split(",", 4);
times = ZonedDateTime.parse(half[0]);
longitude = Double.parseDouble((half[1]));
latitude = Double.parseDouble((half[2]));
elevation = Double.parseDouble((half[3]));
Point point = new Point(times, longitude, latitude, elevation);
add(point);
}
答案 0 :(得分:2)
您正在从字符串构造Scanner对象,这意味着它将仅扫描该字符串(文件名),将其更改为
input = new Scanner(file);
,您将使用抛出FileNotFoundException的构造函数
答案 1 :(得分:0)
来自Java文档:
公共扫描仪(字符串源)
构建一个新的扫描仪,该扫描仪生成从 指定的字符串。
参数:
source-要扫描的字符串
此方法不接受文件名作为参数,并且不会引发FileNotFoundException。
尝试使用:
公共扫描仪(文件源) 抛出FileNotFoundException
构建一个新的扫描仪,该扫描仪生成从 指定的文件。文件中的字节转换为字符 使用底层平台的默认字符集。
参数:来源-要扫描的文件
抛出:FileNotFoundException-如果找不到源