我尝试了很多,但是找不到解决方案。
|
|--src/main/resouces
|
|-updatePropertiesFile.java
|-xyz_en_US.properties
|-xyz_en_AF.properties
|-xyz_en_AE.properties
这是我的项目结构。
我有一个updatePropertiesFile类,用于更新所有属性文件的密钥。我有大约200个属性文件。
因此,我需要的是,我需要编写一种方法来更新所有这些属性文件中的特定键。手动更改并不是那么实际。我需要编写一个执行此功能的应用程序。
我尝试使用resoucebundle机制。但是使用资源包,我们只能获得一个属性文件。我试过ResourceBundle.getBundle(String,Locale)和ResourceBundle.getBundle(String)方法。
我需要遍历这些属性文件和密钥的更新。
我最初的问题是固定的。
我这样做是:
File[] files = new File("src/main/resources").listFiles();
for (File file : files) {
if (file.getName().endsWith("properties")) {
//my logic
}
但是,当我这样做时,我在属性文件中的注释被删除,顺序也被更改。我也保留键的顺序和属性文件中的注释。
为了保持我尝试使用的顺序:
public static class LinkedProperties extends Properties {
private final HashSet keys = new LinkedHashSet();
public LinkedProperties() {
}
public Iterable orderedKeys() {
return Collections.list(keys());
}
public Enumeration keys() {
return Collections.enumeration(keys);
}
public Object put(Object key, Object value) {
keys.add(key);
return super.put(key, value);
}
}
但这导致属性文件中的键值对发生了一些变化。添加了一些特殊字符。
请帮我保持评论和顺序