You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java读取properties文件时保留反斜杠的解决方案咨询

解决Properties文件读取时反斜杠丢失的问题

我懂你碰到的这个糟心问题了——用Java的FileInputStream读取project.properties里的Windows路径时,反斜杠莫名其妙消失了,输出变成了D:ApplicationJava8,这都是因为Properties类默认把反斜杠当成转义字符处理了。下面给你几个实用的解决办法:

方法一:直接修改属性文件(最简单)

既然Java会把单个反斜杠当作转义符,那我们直接在属性文件里用双反斜杠替代单反斜杠就行:

JAVA_PATH=D:\\Application\\Java8

这样用你原来的代码读取后,就能得到正确的D:\Application\Java8了——双反斜杠会被解析成一个真正的反斜杠。

方法二:手动逐行解析属性文件(不修改原文件)

如果你没办法改动原属性文件,可以自己写代码逐行读取并解析,跳过Java默认的转义处理逻辑:

Properties props = new Properties();
try (LineNumberReader reader = new LineNumberReader(new FileReader("D:\\Application\\project.properties"))) {
    String line;
    while ((line = reader.readLine()) != null) {
        // 跳过注释行和空行
        String trimmedLine = line.trim();
        if (trimmedLine.isEmpty() || trimmedLine.startsWith("#") || trimmedLine.startsWith("!")) {
            continue;
        }
        // 分割键值对(只按第一个等号分割,避免值里包含等号的情况)
        int equalsPos = line.indexOf("=");
        if (equalsPos > 0) {
            String key = line.substring(0, equalsPos).trim();
            String value = line.substring(equalsPos + 1).trim();
            props.setProperty(key, value);
        }
    }
} catch (IOException e) {
    e.printStackTrace();
}
String javaPath = props.getProperty("JAVA_PATH");
System.out.println("JAVA_PATH : " + javaPath);

这个方法会完全保留属性文件里的原始内容,包括单反斜杠。

方法三:用第三方库简化处理(适合已有依赖的项目)

如果你的项目已经在用Apache Commons系列库,可以用PropertiesConfiguration来读取,它默认不会处理反斜杠转义:

// 需要引入Apache Commons Configuration依赖
PropertiesConfiguration config = new PropertiesConfiguration("D:\\Application\\project.properties");
String javaPath = config.getString("JAVA_PATH");
System.out.println("JAVA_PATH : " + javaPath);

这个方式代码更简洁,但需要额外引入依赖包。

内容的提问来源于stack exchange,提问作者Arnab Dhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:19:32