为什么Java会忽略.properties文件的第一行?

Cul*_*enJ 6 java properties-file

我正在使用一个加载.properties文件的应用程序,java.util.Properties如下所示:

Properties _properties = new Properties();
_properties.load(new FileInputStream("app.properties"));
Run Code Online (Sandbox Code Playgroud)

属性文件(最初)是这样的:

app=myApp
dbLogin=myDbLogin
version=0.9.8.10
server=1
freq=10000
stateGap=360000
Run Code Online (Sandbox Code Playgroud)

奇怪的是,当我打电话时_properties.getProperty("app"),它总是返回null,但是我可以加载所有其他属性而没有任何问题.我通过在属性文件的顶部添加注释来解决问题,然后一切正常.

我的问题是:为什么Java会这样做?我似乎无法找到任何关于此的文档,这似乎是违反直觉的.

Cul*_*enJ 5

感谢@ KonstantinV.Salikhov和@pms为帮助我们解决这个问题;我决定发布发现的答案,以免人们被评论所困扰。

问题是我的文件编码错误,如下所述:http : //docs.oracle.com/javase/7/docs/api/java/util/Properties.html

load(Reader)/ store(Writer,String)方法以下面指定的简单的面向行的格式从基于字符的流加载和存储属性。load(InputStream)/ store(OutputStream,String)方法的工作方式与load(Reader)/ store(Writer,String)对相同,不同之处在于输入/输出流以ISO 8859-1字符编码进行编码。

(强调我的)。

我将属性文件的编码更改为ISO-8859-1,并且一切正常。