访问和编码属性文件

Noo*_*z42 2 java properties

我习惯使用属性文件,例如Ant.在哪里我可以简单地引用属性文件做类似的事情:

<property file="webapp_DO_NOT_COMMIT.properties"/>
Run Code Online (Sandbox Code Playgroud)

(该文件之所以如此命名是因为我们的DVCS配置为永远不会提交包含"DO_NOT_COMMIT"的文件以防止提交凭证/密码/等.)

这是一个非常简单的.properties文件示例:

passwd=brokencleartextpassword
Run Code Online (Sandbox Code Playgroud)

现在我想将一些配置放在我需要从我的Java代码访问的另一个类似的属性文件中.我该怎么办呢?

我还有另一个相关问题:是由任何规范定义的.properties文件的字符编码吗?

Bal*_*usC 9

将它放在类路径中,然后通过java.util.PropertiesAPI 加载它.

Properties properties = new Properties();
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("filename.properties"));
Run Code Online (Sandbox Code Playgroud)

至于编码,它是ISO-8859-1,如API javadoc中所指定的.

...输入/输出流以ISO 8859-1字符编码进行编码....

但是你可以通过反馈Reader来解决它(自Java 1.6以来这是新的).

Properties properties = new Properties();
InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("filename.properties");
properties.load(new InputStreamReader(input, "UTF-8"));
Run Code Online (Sandbox Code Playgroud)

也可以看看: