首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将Java属性对象转换为字符串

将Java属性对象转换为字符串
EN

Stack Overflow用户
提问于 2009-10-16 16:42:04
回答 6查看 42.5K关注 0票数 16

我有一个从内存中的String加载的Java Properties对象,它之前是从实际的.properties文件加载到内存中的,如下所示:

代码语言:javascript
复制
this.propertyFilesCache.put(file, FileUtils.fileToString(propFile));

util fileToString实际上从文件中读取文本,其余代码将其存储在一个名为propertyFilesCacheHashMap中。稍后,我将文件文本作为StringHashMap中读取,并将其重新加载到Java Properties对象中,如下所示:

代码语言:javascript
复制
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

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-10-16 16:57:54

代码语言:javascript
复制
public static String getPropertyAsString(Properties prop) {    
  StringWriter writer = new StringWriter();
  prop.list(new PrintWriter(writer));
  return writer.getBuffer().toString();
}
票数 33
EN

Stack Overflow用户

发布于 2013-08-21 23:16:52

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

代码语言:javascript
复制
public static String getPropertyAsString(Properties prop) { 
    StringWriter writer = new StringWriter();
    try {
        prop.store(writer, "");
    } catch (IOException e) {
        ...
    }
    return writer.getBuffer().toString();
}
票数 14
EN

Stack Overflow用户

发布于 2012-07-04 21:59:15

它与您的问题没有直接关系,但是如果您只是想打印出用于调试的属性,您可以这样做

代码语言:javascript
复制
properties.list(System.out);
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1579113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档