Java 读取并比较在键和值中都包含反斜杠的属性文件

Java 读取并比较在键和值中都包含反斜杠的属性文件,java,backslash,properties-file,Java,Backslash,Properties File,我正在读取Java中的属性文件,这些文件的键和值都包含一个或多个反斜杠。示例: xyz\ \ \ \ val.action.do_something\= {show} {first} &nbsp; {last} </a> filepath=C:\folder1\folder2 i\have\backslash=the\value i\\also\have\backslash=value xyz\\\\val.action.do\={show}{first}{last}

我正在读取Java中的属性文件,这些文件的键和值都包含一个或多个反斜杠。示例:

xyz\ \ \ \ val.action.do_something\= {show} {first} &nbsp; {last} </a>

filepath=C:\folder1\folder2

i\have\backslash=the\value

i\\also\have\backslash=value
xyz\\\\val.action.do\={show}{first}{last}
filepath=C:\folder1\folder2
i\have\反斜杠=值
i\\a\have\backslax=value
我知道properties.load会删除两边的反斜杠。即使在比较来自两个不同属性文件的给定键的值时,如何在两侧保留它

主要目的是比较两个这样的属性文件。在比较时,它应该逐字比较每个字符,也应该同样打印。

在键中加反斜杠是一件奇怪的事情,在我看来是一个非常糟糕的主意。我不确定属性文件规范是否允许这样做

无论如何,您需要转义反斜杠和其他特殊字符(例如“=”或“:”…),以便

应该成为

filepath=C\:\\folder1\\folder2

看看javadoc。

也许你应该举例说明你期望得到什么样的结果,以改进这个问题。为什么?反斜杠有一个特定的含义,这在derstoof中是由
java.util.Properties定义的。
如果您没有使用反斜杠,那么您就错了。如果您只想比较原始文件,请不要使用
属性。
我正在比较属性文件,而不是原始文件。这些文件实际上是属性文件。但是,属性文件中的条目允许在键和值中使用反斜杠和任何序列中的所有特殊字符。谢谢!这是可以理解的。但是,让我们在这里假设这种情况。假设属性文件A的条目如下所示。键=一行后跟新行\n,属性文件B的条目如下所示。键=一行后跟新行。进行比较时,它报告差异,但处理“\n”而不是显示字符。比较或打印时如何保留字符?我不确定是否完全理解您的要求。如果希望在值中包含新行字符,还需要对其进行转义。Ex
my.value=带新行的值\n
。如果要保留“\n”序列,则需要转义反斜杠:
my.value=转义新行\\n
请参阅
filepath=C\:\\folder1\\folder2