永远不会在方法中抛出异常'java.io.FileNotFoundException'

时间:2019-03-08 18:25:04

标签: java exception filenotfoundexception

我有一个读取文件的方法,然后将值传递给名为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);
    } 

2 个答案:

答案 0 :(得分:2)

您正在从字符串构造Scanner对象,这意味着它将仅扫描该字符串(文件名),将其更改为

 input = new Scanner(file);

,您将使用抛出FileNotFoundException的构造函数

答案 1 :(得分:0)

来自Java文档:

  

公共扫描仪(字符串源)

     

构建一个新的扫描仪,该扫描仪生成从   指定的字符串。

     

参数:

     

source-要扫描的字符串

此方法不接受文件名作为参数,并且不会引发FileNotFoundException。

尝试使用:

  

公共扫描仪(文件源)           抛出FileNotFoundException

     

构建一个新的扫描仪,该扫描仪生成从   指定的文件。文件中的字节转换为字符   使用底层平台的默认字符集。

     

参数:来源-要扫描的文件

     

抛出:FileNotFoundException-如果找不到源