在配置文件a.properties中有一行
path=C:\test
在java中getProperty("path")后,java把\t认为是一个字符TAB。
怎样才能取到正确的结果:C:\test,不能使用替换\t的方法,这样不通用,因为可能还会有\n等。

解决方案 »

  1.   

    leading and trailing whitespace omitted. 
    不行吗 说老实话 我也 没怎么看懂你的意思
      

  2.   

    使用C:\\test或者C:/test...
    properties文件都需要注意这个问题啊喵~~`
      

  3.   

    properties文件都这样应用的
    使用C:\\test或者C:/test... 
      

  4.   

    你忘记把\转义了转义下C:\\test
      

  5.   

    在windows下“/”“\”都是合法路径分隔符,在Linux/Unix下只有"/"是合法的
    File f=new File(myPath+“\\+myFileName);
      

  6.   

    转义字符
    c:\\test
    c:/test
      

  7.   

    呵呵,Properties 文件中的“\”是转义字符,像“:”“=”之类的字符都需要转义,
    当然了“\”应用“\\”进行转义。
      

  8.   

    晕,\\或者/我当然知道,这样的话,我还用问么,我就是要在写成path=C:\test的情况下,怎么样得到正确的结果。
      

  9.   

    java.io自己写一个读文件的类,应该可以吧.
      

  10.   


    File f = new File("a.properties");
    Properties pos = new Properties();
    pos.load(new FileInputStream(f));
    re=pos.getProperty("path");
    String ff = re.subSequence(0, re.indexOf("\t"))+"\\t" + re.subSequence(re.indexOf("\t")+1, pt.re.length());
      

  11.   

    不好意思,我把类名去掉,改:File f = new File("a.properties");    
    Properties pos = new Properties();
    pos.load(new FileInputStream(f));
    re=pos.getProperty("path");
    String ff = re.subSequence(0, re.indexOf("\t"))+"\\t" + re.subSequence(re.indexOf("\t")+1,re.length());
      

  12.   

    试试path="C:\\test" 或 path=@"C:\test" 
      

  13.   

    这个问题太简单了,我根本就没机会,呵呵
    c:\\test 
    c:/test
      

  14.   

    如果可以的话,我想java早就解决了,也不会用//或\来代替/
      

  15.   

    你用 getAbsolutePath(),  这个可以。
      

  16.   


    嘿嘿,kokobox 搬好家别忘记散分哦~~
      

  17.   

    Properties 文件中的“\”是转义字符,像“:”“=”之类的字符都需要转义, 
    当然了“\”应用“\\”进行转义。
      

  18.   

    FILE类里有一个是斜扛的常量,他可以根据不同的系统转成/或\好像是File.separator
      

  19.   

    看了Properties源码,Properties.load()时,在将key-value放入HashTable之前,用loadConvert(String theString)对每一个value进行了转换。loadConvert将两个字符'\'\t'替换为一个转义字符'\t'。与此相似的还有\r,\n,\f看来,要么屈从于Properties的约定,要么重写Properties的load方法就可以了。
      

  20.   

    看了Properties源码,Properties.load()时,在将key-value放入HashTable之前,用 loadConvert(String theString)对每一个value进行了转换。loadConvert将两个字符'\''t'替换为一个转义字符'\t',与此相似的还有\r,\n,\f,如果'\'后面是其它字符,只直接将'\'舍掉。看来,要么屈从于Properties的约定,要么重写Properties的load方法就可以了。
      

  21.   

    File.separator 根据不同操作系统生成不同的分割符。。
      

  22.   

    改为/这边斜杠就行,这边杠在unix、linux以及windows系统都认,\这边的杠只有windows系统认。
      

  23.   

    java 很强大.
    可以用这个.
    File.separator
      

  24.   

    LZ这是何必呢?难道你不满意 JAVA原有的类库? 非要自己写个?
    哦!!我明白了,LZ想去SUN公司 工作!!
      

  25.   

    明白楼主的意思了
    在windows 下 直接转意就可以了
    比如 C:\\TEST.txt如果在LIKE UNIX下 可以用 平台相关File.separator 
      

  26.   

    200分引来的风波.
    在写JDBC连接路径的时候也要"..\\..\\...\\",不知道是不是LZ的意思
      

  27.   

    用双斜杠:C:\\test\\*.java 或者C:/test
      

  28.   

    有一部人错误理解了楼主的意思了,楼主的意思是如果path=C:\test的情况下,怎样知道就是C:\test,要是转义的话还用得着这样嘛
      

  29.   


    the format like this~
      

  30.   

    用trim拉!
      向各位学习!
      

  31.   

    我是楼主,path=C:\\test或path=C:/test 都很欠抽啦,为了一个程序的约定破坏用户使用习惯,这像什么话?
    还有什么File.separator的,根本不着调。
    靠谱的同志很少。还有人说200分啥的,分有什么用?这个小问题都没人搞的定,真遇到难度大的,会有人解答的出么?鉴于这个贴子这么受关注,我就等一段小时间再结账啦,哈哈。
      

  32.   


    File f = new File("a.properties");    
    Properties pos = new Properties();
    pos.load(new FileInputStream(f));
    re=pos.getProperty("path");
    String ff = re.subSequence(0, re.indexOf("\t"))+"\\t" + re.subSequence(re.indexOf("\t")+1, pt.re.length());
      

  33.   

    JAVA交流与学习群:45609427 
    挑战技术,超越自我!!