我有一个从内存中的String
加载的Java Properties
对象,它之前是从实际的.properties
文件加载到内存中的,如下所示:
this.propertyFilesCache.put(file, FileUtils.fileToString(propFile));
util fileToString
实际上从文件中读取文本,其余代码将其存储在一个名为propertyFilesCache
的HashMap
中。稍后,我将文件文本作为String
从HashMap
中读取,并将其重新加载到Java Properties
对象中,如下所示:
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);
此时,我已经替换了内存中属性文件中的属性,并希望像读取File
对象一样从Properties
对象中获取文本。有没有一种简单的方法可以做到这一点,或者我必须遍历属性并手动创建String
?
发布于 2009-10-16 16:57:54
public static String getPropertyAsString(Properties prop) {
StringWriter writer = new StringWriter();
prop.list(new PrintWriter(writer));
return writer.getBuffer().toString();
}
发布于 2013-08-21 23:16:52
@Isiu answer似乎有问题。在此之后,代码属性被截断,就像字符串长度有一些限制一样。正确的方法是使用如下代码:
public static String getPropertyAsString(Properties prop) {
StringWriter writer = new StringWriter();
try {
prop.store(writer, "");
} catch (IOException e) {
...
}
return writer.getBuffer().toString();
}
发布于 2012-07-04 21:59:15
它与您的问题没有直接关系,但是如果您只是想打印出用于调试的属性,您可以这样做
properties.list(System.out);
https://stackoverflow.com/questions/1579113
复制相似问题