从ini文件读取path,反斜杠转义字符消失?

我从ini文件中读取绝对path名,并将path名作为String值存储在我的程序中。 但是,当我这样做的时候,存储的价值似乎正在丢失反斜杠,这样path就会出现一个大混乱? 例如,ini文件将具有以下键值:

key=C:\folder\folder2\filename.extension 

并存储的值是作为C:folderfolder2filename.extension

有谁知道如何逃脱钥匙之前,它被读入?

我们还假设更改ini文件的值不是一种替代方法,因为它不是我创build的文件。

Solutions Collecting From Web of "从ini文件读取path,反斜杠转义字符消失?"

尝试在Ini4j中将escape属性设置为false。

你可以试试:

 Config.getGlobal().setEscape(false); 

如果你读过这个文件,然后把\转换成/处理之前,那就行了。 所以你使用的库有一个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("\\\\", "\\\\\\\\");