如何使用 Java 属性文件?

2022-08-31 05:54:01

我有一个键/值对列表,我想将配置值存储为Java属性文件,然后加载和循环访问。

问题:

  • 我是否需要将文件存储在与将加载它们的类相同的包中,或者是否有任何应放置该文件的特定位置?
  • 文件是否需要以任何特定扩展名结尾或可以?.txt
  • 如何在代码中加载文件
  • 如何循环访问其中的值?

答案 1

您可以将 InputStream 传递给属性,因此您的文件几乎可以位于任何位置,并调用任何内容。

Properties properties = new Properties();
try {
  properties.load(new FileInputStream("path/filename"));
} catch (IOException e) {
  ...
}

迭代为:

for(String key : properties.stringPropertyNames()) {
  String value = properties.getProperty(key);
  System.out.println(key + " => " + value);
}

答案 2
  • 您可以将文件存储在任何您喜欢的地方。如果要将其保留在 jar 文件中,则需要使用或访问它。如果它在文件系统上,那就稍微容易一些了。Class.getResourceAsStream()ClassLoader.getResourceAsStream()

  • 任何扩展名都可以,尽管.properties在我的经验中更常见

  • 使用 加载文件,传入 或 a(如果您使用的是 Java 6)。(如果您使用的是Java 6,我可能会使用UTF-8和一种代替默认的ISO-8859-1编码。Properties.loadInputStreamStreamReaderReader

  • 像迭代法线(从中派生)一样迭代它,例如使用 .或者,可以使用 返回的枚举。HashtablePropertieskeySet()propertyNames()