我正在尝试在config.properties文件中存储日期,但格式错误。
try{
prop.setProperty("last_run_time",sdf.format(date));
prop.store(new FileOutputStream("config.properties"),null);
}
catch (Exception e){
e.printStackTrace();
}
sdf.format(date))
的值是正确的,例如2013-08-23 02:47
。问题是属性文件2013-08-23 02\:47
被存储。 '\'
来自哪里?
答案 0 :(得分:4)
\
取消屏蔽您的:
。 Normaly :
用于定义具有值的键!您可以阅读有关取消屏蔽和.properties文件here的更多信息。
答案 1 :(得分:2)
这来自Java Doc:
该键包含以。开头的行中的所有字符 第一个非白色空格字符,最多但不包括 首先是未转义的'=',':'或除了一行之外的空白字符 终止。所有这些关键终止字符都可以包含在中 用前面的反斜杠字符转义它们的关键;对于 例如,
\:\ =
将是双字符键“:=”。行终止符可以是 包括使用\ r和\ n转义序列。任何空白之后 键被跳过;如果键后的第一个非空白字符 是'='或':',然后忽略它后面的任何空白字符 它也被跳过了。线上的所有剩余字符成为一部分 关联元素字符串;如果没有剩余 字符,元素是空字符串“”。一旦原始人物 构成关键和元素的序列被识别,逃避 如上所述进行处理。
我认为像\:
一样保存 Java属性文件不是您要阅读的文本。它是为Java代码阅读的。转义\
将确保下次Java应用程序读取它时,它将被解释为冒号,而不是键/值分隔符。
答案 2 :(得分:0)
冒号是可能的键/值分隔字符之一。 前导反斜杠转义它(只有当键包含一个冒号时才需要这个,但是当你总是转义它时,你在保存方面更多)。
有效作业的变体:
key value
key= value
key: value