我阅读了几个属性文件,以将它们与缺少键的模板文件进行比较。
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”。
有谁知道我该如何避免这种情况?