我现在碰到一个问题 我要用JAVA在INI类型的 文件上读取一个文件的地址  但是这个地址 是这样写的: C:\123.txt  这时我用JAVA 读取会出错  主要是因为转意字符问题  ‘\’消失了。。 有办法使JAVA 屏蔽掉转移字符的吗?
JAVA 代码:
public ParserINI() throws Exception {
try {
Properties prop = new Properties();
prop.load(new FileInputStream("c:\\CTS_Current.INI"));
String configPath = prop.getProperty("DIR_ENV_FILE");
prop.load(new FileInputStream(configPath));
hmPath.put("AP_HOME_PATH",prop.get("AP_HOME_DRIVE")+":\\"+prop.get("AP_HOME_DIR"));
hmPath.put("DATA_HOME_PATH",prop.get("DATA_HOME_DRIVE")+":\\"+prop.get("DATA_HOME_DIR"));
System.out.println(hmPath.get("AP_HOME_PATH"));
System.out.println(hmPath.get("DATA_HOME_PATH"));
}catch (Exception e) {
throw e;
    }
}
C盘 INI文件 CTS_Current.INI 内容:
DIR_ENV_FILE=C:\\CTS_EnvHome.INIC盘 INI文件 C:\\CTS_EnvHome.INI 内容:
AP_HOME_DRIVE=D
AP_HOME_DIR=CAB_PJ
DATA_HOME_DRIVE=E
DATA_HOME_DIR=CAB_PJ求大家帮忙

解决方案 »

  1.   

    用\\就是代表"\",或者你用发、文件系统的分隔符
    File.separator
      

  2.   

    replaceAll("\\\\","\\\\\\\\") ;读出的含有\\字符串的转换一下
      

  3.   

    但是在INI配置文件中用户要求只能也成也成 C:\S_EnvHome.INI  写成一个斜杠的啊 那该怎么办啊 多到JAVA上都没了
      

  4.   

    改成 /  和 写成\\ 意思不是一样的吗 我在INI文件里面 只能写C:\S_EnvHome.INI  这样 不可以改写成 / 或者\\    我在JAVA  改怎么读  用READlINE 可以读出 \ 来 但是 太过麻烦
      

  5.   

    对于filepath的最好做法个人感觉是写个工具类自动进行转换
      

  6.   

    Java 中的 Properties 是用来解析 .properties 文件的,这种文件的格式定义跟 .ini 文件格式有类似的地方,但不完全相同。比如,.properties 文件支持“转义字符”,而 .ini 文件不支持。这正是楼主遇到的困难。所以,简单地回答:楼主,你选错了工具。Properties 是没有办法“关闭转义字符”的。所以,要解决这个问题,你可以考虑字节写一个解析类(如果需求不复杂的话,这个类写起来也不会太复杂),或者,去找个第三方提供的类库,比如 http://www.codeproject.com/useritems/INIFile.asp
      

  7.   

    对不起,上贴敲错了,应该是“你可以考虑自己写一个解析类”BTW: 在 Google 上查“java ini”,可以找到一些帮助,我上面给的那个链接就是这么找出来的。