java - 仅更新键/值属性文件中的键?

标签 java properties

我正在尝试处理一个程序,给定的输入文件是in.properties,并且我想将其再次写入一个新文件out.properties,并从文件内容中丢弃前缀prefix

即输入文件的内容是

prefix.sum.code.root=/compile/pkg

输出文件的内容为

sum.code.root=/compile/pkg

这是我的代码:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

public class Dummy {

public static void main(String args[])
{
    Properties prop =new Properties();

    try{
        //load a property file
        prop.load(new FileInputStream    ("C:\\Users\\user\\Desktop\\ant\\Filtering\\input.properties"));
        for (String key : prop.stringPropertyNames()){ 
            prop.remove(key);
        }
        prop.store(new FileOutputStream("C:\\Users\\user\\Desktop\\ant\\Filtering\\output.properties"), null);          
    }catch (IOException e)
    {
    e.printStackTrace();
    }
    }}

“KEY”返回空值,我无法将新值更新到该字段

最佳答案

您应该能够使用 Properties.stringPropertyNames 相当轻松地完成此操作和Hashtable.remove ,因为 PropertiesHashtable 的子类。

final Properties properties = ...;
for (final String name : properties.stringPropertyNames()) {
  if (name.startsWith("prefix.")) {
    properties.setProperty(name.substring(6, name.length()), properties.remove(name));
  }
}

关于java - 仅更新键/值属性文件中的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11865927/

相关文章:

java - displaytag 抑制 HTML 格式

java - maven-jaxb2-plugin:即使 xsd 和 xjb 文件位于同一位置,解析架构位置也会出错

objective-c - 在Obj-C中创建Properties,默认的Getter怎么写?

Objective-C 字典作为属性/方法访问

Java Android 动态更改 ImageView 的位置

java - 在我的机器上更新 JRE 后小程序无法运行

java - 使用 Altbeacon 时 Android N 设备不断进入/退出区域的错误的解决方法

properties - 基于 TEXT 属性的 mapbox 图层填充颜色

javascript - 使用字符串获取本地对象的属性

javafx - 将 CheckBox 列添加到现有 TableView