鉴于其中一个实例:org.apache.commons.configuration.PropertiesConfiguration我想写一个评论。怎么样?
pc = new PropertiesConfiguration();
writeComment("this is a comment about the stuff below"); // HOW DO I WRITE THIS?
pc.addProperty("label0", myString);
writeComment("end of the stuff that needed a comment.");
编辑:我有一个粗略的解决方案。希望它可以改进。
这是我能做的最好的事情。它在文件中留下了一条无关的行。
pc = new PropertiesConfiguration();
writeComment(pc, "The following needed a comment so this is a comment.");
pc.addProperty(label0, stuff0);
writeComment(pc, "End of the stuff that needed a comment.");
...
private void writeComment(PropertiesConfiguration pc, String s)
{
String propertyName = String.format("%s%d", "comment", this.commentNumber++);
pc.getLayout().setComment(propertyName, s + " (" + propertyName + ")");
// make a dummy property
pc.addProperty(propertyName, ".");
// put in a dummy right-hand-side value so the = sign is not lonely
}
这种方法的一个问题是PropertiesConfiguration doc对布局有点模糊。它没有明确说明注释将出现在虚线上方,因此似乎存在PropertiesConfiguration可以在后续调用中自由重新排列文件的风险。我甚至没有看到保证属性行顺序被保留,所以我不能保证注释(和虚拟行)总是在注释适用的属性之上:property label0
。当然,我在这里有点偏执。但是,文档确实说布局不保证不会被修改。 希望有人可以在没有虚拟线的情况下提出一些内容,并在评论相对于要评论的属性的评论位置上提供Java文档或网站保证。编辑:您可能想知道我为什么会这样做创建一个虚拟属性,而不是仅仅将注释附加到已存在于文件中的属性之一。原因是因为我想要一个注释来引入一个属性块和更改(新的,或顺序中的开关)是可能的。我不想创建维护问题。我的评论应该说“这是数据挖掘结果的部分”或“这是时间表的部分”,我永远不必重新审视这一点。
答案 0 :(得分:0)
这样的评论?
# This is comment
答案 1 :(得分:0)
PropertiesConfiguration JavaDoc文档
Blank lines and lines starting with character '#' or '!' are skipped.
编辑:好的,你想从代码中写下评论。也许 - 如果您只需要编写属性文件 - 您可以使用PropertiesConfiguration.PropertiesWriter及其writeComment方法,如下所示:
FileWriter writer = new FileWriter("test.properties");
PropertiesWriter propWriter = new PropertiesWriter(writer, ';');
propWriter.writeComment("Example properties");
propWriter.writeProperty("prop1","foo");
propWriter.writeProperty("prop2", "bar");
propWriter.close();
属性文件如下所示:
# Example properties
prop1 = foo
prop2 = bar
<强>更新强>
总结:PropertiesConfiguration不提供您要查找的功能。