0

我有一个看起来像这样的 .ini 文件,并且正在使用 ini4j 来解析文件:

[Filepath]
Inbound=C:\Users\Bilbo\Desktop\Testing

我想返回那个确切的字符串 (C:\Users\Bilbo\Desktop\Testing),并且我有以下 java 代码:

public static String ParseIniInbound (File iniFile) throws 
InvalidFileFormatException, IOException {
    String iniFileName = iniFile.toString();
    Ini ini = new Ini(new File(iniFileName));
    String InboundPath= ini.get("Filepath", "Inbound");
    return InboundPath;
}

但是,返回的是 C:UsersBilboDesktopTesting

我尝试在 .ini 文件中的文件路径周围加上引号,以将其作为字符串读取,但这不起作用。我在 .ini 文件中使用了双斜杠 (C:\\Users\\Bilbo\\Desktop\\Testing),它返回我要查找的内容 (C:\Users\Bilbo\Desktop\Testing) 但我希望能够只需复制并粘贴文件路径,无需手动在 .ini 文件中添加双斜杠。有没有办法使用 ini4j 或其他方式从 .ini 文件中读取字符串?谢谢

4

2 回答 2

1

最简单的方法是禁用转义。

import org.ini4j.Config;
...
Config.getGlobal().setEscape(false);

其他替代方法是使用 Wini 类

import org.ini4j.Wini;
...
Wini ini = new Wini(new File(iniFileName));
于 2018-07-13T14:18:14.350 回答
0

只需在读取文件路径后将斜杠更改为双斜杠即可:

public static String ParseIniInbound (File iniFile) throws 
InvalidFileFormatException, IOException {
    String iniFileName = iniFile.toString().replaceAll("\\", "\\\\");
    Ini ini = new Ini(new File(iniFileName));
    String InboundPath= ini.get("Filepath", "Inbound");
    return InboundPath;
}
于 2018-07-13T13:16:28.387 回答