我有一个.properties文件,我想在Java Properties对象中加载。
该文件包含一些路径。为了能够在使用方法Properties.load()从文件加载属性时加载属性文件而不获取java.lang.IllegalArgumentException: Malformed \uxxxx encoding.
,我需要在路径中使用转义字符'\'。 p>
所以我的路径如下:C:\\Users\\Harald\\Folder1\\Version1\\Folder2
。它以这种方式工作,不会抛出任何异常。
问题在于我无法向用户解释(因为用户可以更改此路径!),他需要在路径中使用双“\”。
有人知道解决这个问题的方法吗? 谢谢!
答案 0 :(得分:26)
更简单的解决方案是使用正斜杠。这样,您的路径将看起来像C:/Users/Harald/Folder1/Version1/Folder2
,其他一切都将正常工作 - 无需更改代码!
答案 1 :(得分:2)
我对你的问题有点困惑。您是否询问是否有一种方法可以让用户编辑属性文件而无需使用非直观\转义字符?
如果您要为用户设置此功能,或许您应该有一个程序或脚本来创建属性文件(在需要时添加转义字符)
答案 2 :(得分:2)
您可能最好为用户定义属性文件的路径,或者将它们指向现有属性文件(包含有用属性的注释等),例如: ${user.home}\\myapp\\myprops.properties
然后始终加载该文件,或者更好的是,只需提供目录并加载以该目录中.properties
结尾的每个文件。
如果您的应用程序是GUI应用程序,您还可以允许用户在文件对话框中选择文件。你从摇摆中获得的字符串以及SWT标签和文件选择器都是java友好的,你不必担心转义字符。