Java - 将文件位置写入属性文件

时间:2013-10-09 10:18:20

标签: java properties

我正在将 FILEPATH 参数写入属性文件,如下所示。

String newFilePath = txtFilepath.getText();
Properties prop = new Properties();
java.io.File propFile = new File("src/com/app/tool/properties/settings.properties");
prop.setProperty("FILEPATH", newFilePath);
System.out.println("newFilePath "+newFilePath);
   try {
     prop.store(new FileOutputStream(propFile), "New File location");
    } catch (IOException ex) {
     ex.printStackTrace();
    }

文件路径是 D:\ filelog.txt

在写作时,控制台会打印出像..

newFilePath D:\filelog.txt

但是当我打开属性文件时,内容就像..

FILEPATH=D\:\\filelog.txt.

任何人都建议我,我真的在这里(?)在这里...?

3 个答案:

答案 0 :(得分:2)

在属性文件中,:有意义。

key = value
key: value

两者都有效。因此,在写入属性文件时必须进行转义。即使\也需要逃避。但是当您在控制台上显示它们时,将识别转义,并正确显示值。

如果您看到Properties

store()方法的文档
  

此属性表中的每个条目都被写出,每行一个。对于   每个条目写入密钥字符串,然后是ASCII =,然后是   关联元素字符串。键和元素的每个字符   检查字符串以查看是否应将其呈现为转义   序列。 ASCII字符\,制表符,换页符,换行符和   回车分别写为\,\ t,\ f \ n和\ r \ n。   字符小于\ u0020且字符大于\ u007E   写为\ uxxxx为适当的十六进制值xxxx。为了   key,所有空格字符都用前面的\字符写。   对于元素,引导空格字符,但不嵌入或   尾随空格字符,使用前面的\字符编写。   键和元素字符#,!,=和:都是用   在反斜杠之前,以确保它们正确加载。

注意: - 如果您使用Properties来读取属性文件(它将处理转义),这应该不是问题,但是如果您读取属性文件就像普通的文本文件(除非你不在意,否则你永远不应该这样做),那么这将是一个问题。

答案 1 :(得分:0)

反斜杠\是一个转义字符,默认情况下不会被另一个\

跟随

冒号:是一个特殊字符,必须使用\进行转义。

检查

上的文档

http://commons.apache.org/proper/commons-configuration/userguide/howto_properties.html

答案 2 :(得分:0)

只需致电prop.get("FILEPATH")即可。你会看到你收到“D:\ filelog.txt”,就像你把它放进去一样。