2

我想在我的 java 类中读取属性文件。

为此我写了:

try {
            Properties property = new Properties();
            property .load(new FileInputStream("abc.properties"));
            String string = property.getProperty("userName");
        } catch (Exception e) {
            e.printStackTrace();
        }

我已将我的 abc.properties 文件放在我的 java 类所在的同一包中。但我收到 FileNotFound 异常。

请让我知道如何给出属性文件的路径。

谢谢并恭祝安康

4

4 回答 4

6

FileInputStream 将在程序的“工作目录”中查找文件,而不是在与您的类相同的包中。

您需要使用 getClass().getResourceAsStream("abc.properties") 从同一个包中加载您的属性文件。

于 2009-06-30T07:27:07.833 回答
1

如果属性文件在您的类文件旁边,则不应使用FileInputStream,而应使用Class.getResourceAsStream.

 property.load(getClass().getResourceAsStream("abc.properties"));

当您将所有内容打包为 jar 文件时,这甚至会起作用。

于 2009-06-30T07:27:58.300 回答
1

你最好使用 ClassLoader.getResourceAsStream。见这篇文章

于 2009-06-30T07:28:33.947 回答
0

假设您的课程是 TestClass 那么您的代码必须更改为,

InputStream input = TestClass.class.getResourceAsStream("abc.properties");
property.load(input);
于 2015-10-09T07:18:37.813 回答