当前位置: 首页 > 面试题库 >

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

邵阳德
2023-03-14
问题内容

我正在使用这样的应用程序加载.properties文件java.util.Properties

Properties _properties = new Properties();
_properties.load(new FileInputStream("app.properties"));

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

app=myApp
dbLogin=myDbLogin
version=0.9.8.10
server=1
freq=10000
stateGap=360000

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

我的问题是:Java为什么要这样做?我似乎找不到关于此的任何文档,而且似乎违反直觉。


问题答案:

感谢@ 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,并且一切正常。



 类似资料:
  • 见下图。我的.gitignore文件应该忽略src/dist中的所有文件,但事实并非如此。

  • 问题内容: 我正在尝试在包级别使用Hibernate @TypeDef批注,这与Hibernate文档中所描述的完全相同。我正在使用和。代码可以编译,并且在类路径中,但是Hibernate仍然看不到它。 如果我上课,那是行得通的,但是如果我把放在那,那是没有用的。我试图用Google搜索,但找不到任何有用的信息。 谢谢! 问题答案: 您可能需要添加一个 到您的Hibernate配置文件,或调用co

  • 问题内容: 我有一个带有关系的实体,我想通过一个查询来检索它,因此使用。有时,Hibernate不尊重它,而是发出N + 1 秒。随着 有时 我的意思是,因为我不知道是什么触发它,我有案件对不同的查询,这可能发生,或者不一样的类。 这是带有我使用的注释的简化实体: 用 我希望单个查询能够同时获取其及其内容,例如 相反,我得到了第一选择所有N S和那么N 献给所有S(考虑没有缓存)。 我发现了许多类

  • 我对iOS布局约束的机制有误解。请参阅下面列出的我放在viewDidLoad中的代码。 在我看来,我的意图是明确的。我想在设备屏幕的中央看到一个按钮。但我只能看到下面的图片。 我在项目控制台中有一个输出,非常可怕,我无法从中理解任何东西。 无法同时满足约束。可能以下列表中至少有一个约束是您不想要的。尝试以下方法:(1)查看每个约束,并尝试找出您不期望的约束;(2) 查找添加了一个或多个不需要的约束

  • 问题内容: 我将Spring 3.1.3用于Web应用程序,将XML配置与组件扫描结合使用。 我意识到,其中一个扫描组件必须在其他几个组件之前进行初始化。在所有需要构造后初始化的类上,我在方法上具有@PostConstruct批注。 为了设置依赖关系顺序,我在需要先后构造的类上将“ @Component”更改为“ @Component(“ configData”)”。然后,在每个需要在“ conf

  • 问题内容: 我的意图是获得客户的分页结果集。我正在使用Tom的这种算法: 我还在“客户”列中定义了一个索引。“ FIRST_NAME”: 该查询返回了预期的结果集,但是从说明计划中,我注意到未使用该索引: 我正在使用Oracle 11g。由于我只查询前20行(按索引列排序),因此我希望使用索引。 为什么Oracle优化器会忽略索引?我认为分页算法有问题,但是我不知道是什么。 谢谢。 问题答案: 您