Java 属性对象到字符串

2022-09-02 22:54:45

我有一个Java对象,我从内存中加载,该对象以前从实际文件加载到内存中,如下所示:PropertiesString.properties

this.propertyFilesCache.put(file, FileUtils.fileToString(propFile));

该实用程序实际上从文件中读取文本,其余代码将其存储在一个名为 .稍后,我从 中读取文件文本,并将其重新加载到 Java 对象中,如下所示:fileToStringHashMappropertyFilesCacheHashMapStringProperties

String propFileStr = this.propertyFilesCache.get(fileName);
Properties tempProps = new Properties();
try {
    tempProps.load(new ByteArrayInputStream(propFileStr.getBytes()));
} catch (Exception e) {
    log.debug(e.getMessage());
}
tempProps.setProperty(prop, propVal);

此时,我已经替换了内存中属性文件中的属性,并且我想从对象中获取文本,就好像我正在阅读对象一样,就像我上面所做的那样。有没有一种简单的方法来执行此操作,或者我是否必须迭代属性并手动创建?PropertiesFileString


答案 1
public static String getPropertyAsString(Properties prop) {    
  StringWriter writer = new StringWriter();
  prop.list(new PrintWriter(writer));
  return writer.getBuffer().toString();
}

答案 2

@Isiu答案似乎有问题。之后,代码属性将被截断,就像字符串长度有一些限制一样。正确的方法是使用如下代码:

public static String getPropertyAsString(Properties prop) { 
    StringWriter writer = new StringWriter();
    try {
        prop.store(writer, "");
    } catch (IOException e) {
        ...
    }
    return writer.getBuffer().toString();
}