我读了几个属性文件,将它们与模板文件中的缺失键进行比较。在读写文件时避免出现换行符( n)
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> entry : resultSet) {
PrintWriter out = null;
try {
out = new java.io.PrintWriter(resultFile);
SortedSet 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”。
有谁知道我该如何避免这种情况?