我讀了幾個屬性文件,將它們與模板文件中的缺失鍵進行比較。在讀寫文件時避免出現換行符( 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<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」。
有誰知道我該如何避免這種情況?
謝謝JB Nizet答案(最好的,我認爲)。這工作! –