Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中读取属性文件时出错_Java_Properties - Fatal编程技术网

在java中读取属性文件时出错

在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)位

我的项目目录如下所示

我得到以下错误

线程“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秒)

我的代码如下

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();
    

    看看这对我来说是最好的答案!!!