我正在使用IDEA 14来遵循简单的Java教程(JDBC)。作为其中的一部分,我将一些配置属性存储在名为jdbcTutorial.properties
的文件中。当我把它放在项目的根目录中时,我可以用以下内容阅读它:
Properties props = new Properties();
props.load(new FileInputStream("jdbcTutorial.properties"));
但是,只要我将其移动到项目中的任何其他目录,我就会收到错误"No such file or directory"
。 无论我是指定相对路径还是绝对路径,都会发生这种情况:
也许有更多标准方法可以使用配置文件,但我真的很想了解我正在观察的行为。谢谢你的帮助!
答案 0 :(得分:1)
默认情况下,根目录将添加到项目的构建路径中。由于您放置文件的目录未添加到项目的构建路径中,因此jvm无法找到该文件。您有两种选择:
答案 1 :(得分:1)
构建项目时,IDEA会将资源目录中的文件放入可执行文件夹中。因此,要从该文件获取输入流,您需要直接从jar中获取它。而不是FileInputStream,使用
getClass().getResourceAsStream("jdbcTutorial.properties")
答案 2 :(得分:0)
如果没有为文件提供路径,则java假定此文件位于项目的根文件夹中。所以相对路径"。"总是指向此文件夹。当文件位于其他位置时,请在路径名前添加相应的相对路径,例如" ./ files / configuration / jdbcTutorial.properties"。
当你在路径名之前放置一个绝对文件路径时,它也可以工作,例如&#34; C:/Users/Me/Documents/Java/workspace/thisProject/files/configuration/jdbcTutorial.properties"。< / p>