我正在读取ini文件中的绝对路径名,并将路径名作为String值存储在我的程序中。然而,当我这样做时,以某种方式存储的值似乎正在失去反斜杠,所以路径只是出现了一个大混乱?例如,ini文件的键值为:
key=C:\folder\folder2\filename.extension
并且存储的值将显示为C:folderfolder2filename.extension
。
在读入之前,有人知道如何逃避键吗?
我们还假设更改ini文件的值不是替代,因为它不是我创建的文件。
答案 0 :(得分:7)
尝试在Ini4j中将escape属性设置为false。
您可以尝试:
Config.getGlobal().setEscape(false);
答案 1 :(得分:0)
如果您在处理之前阅读了该文件,然后将\
翻译为/
,那就可以了。所以你正在使用的库有一个方法Ini#load(InputStream)
,它接收INI文件的内容,如下所示:
byte[] data = Files.readAllBytes(Paths.get("directory", "file.ini");
String contents = new String(data).replaceAll("\\\\", "/");
InputStream stream = new ByteArrayInputStream(contents.getBytes());
ini.load(stream);
处理器必须对反斜杠进行解释,因此这将为其提供带有正斜杠的数据。或者,您可以在处理之前转义反斜杠,如下所示:
String contents = new String(data).replaceAll("\\\\", "\\\\\\\\");