いくつかのプロパティ ファイルを読み込んで、不足しているキーのテンプレート ファイルと比較しました。
FileInputStream compareFis = new FileInputStream(compareFile);
Properties compareProperties = new Properties();
compareProperties.load(compareFis);
注: テンプレート ファイルも同じように読みます。
読んだ後、それらを比較し、欠落しているキーとテンプレート ファイルの値を Set に書き込みます。
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」を保持する必要があります。
どうすればそれを回避できるか知っている人はいますか?