【发布时间】:2012-05-16 03:43:40
【问题描述】:
我阅读了几个属性文件,以将它们与模板文件进行比较以查找缺失的键。
FileInputStream compareFis = new FileInputStream(compareFile);
Properties compareProperties = new Properties();
compareProperties.load(compareFis);
注意:我以同样的方式阅读模板文件。
阅读后,我比较它们并将缺少的键及其值从模板文件写入一个集合。
CompareResult result = new CompareResult(Main.resultDir);
[...]
if (!compareProperties.containsKey(key)) {
retVal = true;
result.add(compareFile.getName(), key + "=" + entry.getValue());
}
最后我将丢失的键及其值写入一个新文件。
for (Entry<String, SortedSet<String>> entry : resultSet) {
PrintWriter out = null;
try {
out = new java.io.PrintWriter(resultFile);
SortedSet<String> values = entry.getValue();
for (String string : values) {
out.println(string);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
out.flush();
out.close();
}
}
如果我打开结果文件,我会看到模板文件值中的所有换行符“\n”都被替换为新行。示例:
test.key=Hello\nWorld!
变成
test.key=Hello
World!
虽然这基本上是正确的,但就我而言,我必须保留“\n”。
有谁知道如何避免这种情况?
【问题讨论】:
标签: java file-io properties line-breaks