gpt4 book ai didi

java - 在读取和写入文件时避免丢失换行符 (\n)

转载 作者:搜寻专家 更新时间:2023-11-01 02:51:25 25 4
gpt4 key购买 nike

我阅读了几个属性文件,将它们与缺少 key 的模板文件进行比较。

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”。

有谁知道我怎样才能避免这种情况?

最佳答案

因为您的输出似乎是一个属性文件,您应该使用 Properties.store()生成输出文件。这不仅会处理换行符的编码,还会处理其他特殊字符(例如非 ISO8859-1 字符)。

关于java - 在读取和写入文件时避免丢失换行符 (\n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10485375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com