当我加载属性文件时,下面给出的代码返回 null 。请仔细阅读代码并向我推荐更改。
constantProp = new Properties();
try {
// Loads the constants.properties file
InputStream constantPropFile = ClassLoader.class
.getResourceAsStream("/ConstantFiles/"
+ ".properties");
System.out.println(constantPropFile);
constantProp.load(constantPropFile);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
log.equals("Constant Property file not found");
} catch (IOException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
log.error("Can't Load constants.properties property
file ");
}
答案 0 :(得分:0)
如果您使用方法getResourceAsStream
,则说明:
搜索顺序在{@link getResource(String)}的文档中描述。
用于读取资源的输入流,如果是资源则为null 无法找到
确保链接正常运行。
因此,如果您尝试从本地计算机或您已知道的路径加载属性文件,则可以使用以下代码加载属性文件:
Properties prop = new Properties();
prop.load(new FileInputStream("/ConstantFiles/.properties"));
答案 1 :(得分:0)
您似乎错过了文件名。您在代码中的注释显示“加载constants.properties文件”但您的代码正在尝试加载位于文件夹“/ ConstantFiles /”的名为“.properties”的文件。因此,您的问题似乎只是缺少文件名。
万一你不知道,“getResourceAsStream”将尝试在你的类路径中查找文件。请检查文件夹“ConstantFiles”是否在您的类路径(http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String))
中