无法使用Backward Slash读取属性文件

时间:2014-10-28 09:46:38

标签: java string properties

我无法使用Java读取属性文件。它意味着在此属性文件中向后斜杠不起作用。它显示为,此目的地:C:Usersxxx.a

String filename="D://Desktop//xxx.properties";
is = new FileInputStream(filename);
Properties prop=new Properties();
prop.load(is);
System.out.println("destination :"+prop.getProperty("destination"));

属性文件是:

destination=C:\Users\xxx.a\

结果显示

destination :C:Usersxxx.a

但我想显示目的地:C:\ Usersxxx.a \

你能建议我吗?

4 个答案:

答案 0 :(得分:2)

\是逃脱角色。

正斜杠/在Unix环境中用作路径分隔符 反斜杠\在Windows环境中用作路径分隔符 因此,您需要使用\\/作为路径分隔符。您无法在java中直接使用\。因为,它是一个逃脱角色。

因此,您需要在属性文件中进行更改以使您的程序正常工作。 在属性文件中使用/\\作为路径分隔符。

在您的情况下,您希望显示为C:\Users\xxx.a\ 因此,在属性文件中使用C:\\Users\\xxx.a\\将输出作为C:\Users\xxx.a\

答案 1 :(得分:0)

您需要在属性文件中添加两个斜杠,如下所示: destination=C:\\Users\\xxx.a\\

另一种方法是在属性文件中交换斜杠: destination=C:/Users/xxx.a/

\是转义字符,因此将其删除。添加两个斜杠会从第一个斜杠中删除,因此只剩下一个斜杠。

答案 2 :(得分:0)

\字符在许多编程语言中用作“转义字符”。它为文本中的下一个字符赋予了特殊含义。例如,\n对特殊字符“new-line”进行编码。

使用\\代替\。这向解析器指示您的意思是实际符号,而不是转义字符。例如,您的属性值为:

destination=C:\\Users\\xxx.a\\

答案 3 :(得分:0)

您可以将其存储在D:/Desktop/xxx.properties中

destination=C:/Users/xxx.a/

并用一个反斜杠显示它

String fileName = prop.getProperty("destination");
System.out.println("destination: " + fileName); // shows: C:/Users/xxx.a/
System.out.println("destination: " + Paths.get(fileName)); // shows: C:\Users\xxx.a