簡體   English   中英

從ini文件中讀取路徑,反斜杠轉義字符消失了嗎?

[英]Reading path from ini file, backslash escape character disappearing?

我正在讀取ini文件中的絕對路徑名,並將路徑名作為String值存儲在我的程序中。 然而,當我這樣做時,以某種方式存儲的值似乎正在失去反斜杠,所以路徑只是出現了一個大混亂? 例如,ini文件的鍵值為:

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

並且存儲的值以C:folderfolder2filename.extension

有人知道如何在讀入之前逃脫密鑰嗎?

我們還假設更改ini文件的值不是另一種選擇,因為它不是我創建的文件。

嘗試在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("\\\\", "\\\\\\\\");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM