在java中读取属性文件时出错
我的项目目录如下所示 我得到以下错误 线程“main”java.io.FileNotFoundException中的异常: /resources/config.properties(无此类文件或目录)位于 java.io.FileInputStream.open0(本机方法)位于 java.io.FileInputStream.open(FileInputStream.java:195)位于 java.io.FileInputStream.(FileInputStream.java:138)位于 java.io.FileInputStream.(FileInputStream.java:93)位于 quartztest.quartztest.main(quartztest.java:36) /home/seng/.cache/netbeans/8.1/executor snippets/run.xml:53:Java 返回:1生成失败(总时间:0秒) 我的代码如下在java中读取属性文件时出错,java,properties,Java,Properties,我的项目目录如下所示 我得到以下错误 线程“main”java.io.FileNotFoundException中的异常: /resources/config.properties(无此类文件或目录)位于 java.io.FileInputStream.open0(本机方法)位于 java.io.FileInputStream.open(FileInputStream.java:195)位于 java.io.FileInputStream.(FileInputStream.java:138)位
Properties prop = new Properties();
InputStream input = null;
input = new FileInputStream("/resources/config.properties");
prop.load(input);
由于resources文件夹是一个源文件夹,您可以通过以下方式获得
InputStream
:
input = QuartzTest.class.getResourceAsStream("/resources/config.properties");
尝试使用此选项加载:
//Get file from resources folder
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("config.properties").getFile());
首先,以“/”开头意味着搜索从根目录开始,而不是从子目录开始 其次,资源文件夹可能在您的项目文件夹中,因此您必须使用getClass().getClassloader()。。。读取文件。然后只能使用文件名(如果它是唯一的),否则必须提供路径以使其唯一
如果使用FileInputStream,则必须提供文件的完整路径。我在这里看到两个选项:
input=newfileinputstream(“src/main/resources/config.properties”)代码>
ClassLoader ClassLoader=Thread.currentThread().getContextClassLoader();
InputStream=classloader.getResourceAsStream(“config.properties”);
第二个是首选的,因为您需要根据资源文件夹指定相对路径ClassLoader classLoader = getClass().getClassLoader();
看看这对我来说是最好的答案!!!