我不知道最近发生了什么
这是我的Titles_en_US.properties文件:
WEBSITE.TITLE = Hello World
FOOTER.DISCLAIMER = Disclaimer
FOOTER.TERMS_OF_USE = Terms of Use
FOOTER.PRIVACY_POLICY = Privacy Policy
这是我的方法:
private String getTitle() throws Exception {
System.out.println("\n\n==>"+getProperty("FOOTER.DISCLAIMER",LabelsFile()));
return getProperty("WEBSITE.TITLE", LabelsFile());
}
同一属性文件中的FOOTER.DISCLAIMER
和WEBSITE.TITLE
,但其中一个正在运行,而另一个正在抛出以下错误:
==>Disclaimer
Resources.ResourceBundle.java:getProperty()
java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key WEBSITE.TITLE
请告知我在哪里犯错?
更新
我注意到,当我提供换行时,它的工作正常。无法理解为什么资源包没有从第一行属性文件读取?
答案 0 :(得分:1)
我发现当我在属性文件顶部给出换行符时,它就开始工作了。然后我搜索了为什么java ResourceBundle没有读取属性文件的第一行并找到了这个POST。在这篇文章中说:
加载(Reader)/存储(Writer,String)方法加载和存储 简单的基于字符的流的属性 下面指定的面向行的格式。负载(InputStream)/ store(OutputStream,String)方法的工作方式与 load(Reader)/ store(Writer,String)对,输入/输出除外 流以ISO 8859-1字符编码进行编码。
并且在上述帖子中建议将属性文件的编码更改为ISO-8859-1。