【问题标题】:Can't find files with eclipseeclipse找不到文件
【发布时间】:2014-12-05 15:33:22
【问题描述】:

好的,所以我搜索了这个网站和其他一些网站来寻找这个问题的答案,并尝试了所有的建议。没有任何效果,它一直在抛出File not found exception

File inFile = new File("PhoneRecords.txt");
String path = inFile.getAbsolutePath();
 try {
    System.setIn(new FileInputStream(path));
} catch (FileNotFoundException e) {
    e.printStackTrace();
}
Scanner sc = new Scanner(System.in);

在此之后,它会尝试通过以下方法使用 Scanner。

public static PhoneCall readNextPhoneCall(Scanner sc){
  return new PhoneCall (sc.nextDouble(), sc.nextInt());
}

该文本文件位于我正在使用的同一目录中,并且我再次确保在我的代码中正确命名它。请帮忙。

【问题讨论】:

  • 使用 Eclipse 调试器。设置断点并单步执行代码以查看哪些行为未能满足您对正在发生的情况的假设。
  • 可能duplicate
  • 保持和你的source/bin目录同级试试。
  • 任何时候抛出异常,发布堆栈跟踪。任何时候你有一个可以用一个可以编译和运行的小例子来说明的问题,发布这个例子。 “尝试了所有建议”和“没有任何效果”不能替代提供有关发生情况和时间的明确信息。

标签: java eclipse file-io fileinputstream


【解决方案1】:

试着把你的文件放在这里。

--->bin
--->src
--->PhoneRecords.txt

或指定文件的位置。例如,

String path = "C:\\MyFiles\\PhoneRecords.txt";
File inFile = new File(path);

【讨论】:

    【解决方案2】:

    用相对路径创建File 总是有风险的。要么使用像 /my/absolute/path 这样的绝对路径,要么使用不同的方法来获取你的文件。

    另外,为什么不使用这个构造函数:Scanner(File source)

    http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#Scanner(java.io.File)

    或者更好,使用这个:Scanner(InputStream source)

    然后,使用 getResourceAsStream 正确检索您的文件

    InputStream is = getClass().getClassLoader().getResourceAsStream("PhoneRecords.txt");
    Scanner sc = new Scanner(is);
    

    【讨论】:

      【解决方案3】:

      您是否在 Eclipse 控制台中启用了输入?之前从 Eclipse 控制台使用时,扫描仪给我带来了一些问题..

      来源:https://stackoverflow.com/a/22471175/441907

      【讨论】:

        【解决方案4】:

        如果文件放在 src 下,请尝试从类路径加载

        Scanner scanner=new Scanner(YourClass.class.getResourceAsStream("/package/...pathtofile");
        

        【讨论】:

          猜你喜欢
          • 2012-05-08
          • 1970-01-01
          • 2016-03-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-24
          • 2012-10-03
          • 1970-01-01
          相关资源
          最近更新 更多