pg-*_*ban 22 java xml properties
在涉及属性时,我是新手,我读到XML是存储这些的首选方式.然而,我注意到,编写一个常规.properties文件的风格
foo=bar
fu=baz
Run Code Online (Sandbox Code Playgroud)
也有效.这意味着更少的打字(也许更容易阅读和更高效).那么使用XML文件有什么好处呢?
Daf*_*aff 20
在XML中,您可以存储比属性文件中更复杂(例如,分层)的数据.所以这取决于你的用例.如果您只想存储少量直接属性,则属性文件更易于处理(尽管Java属性类也可以读取基于XML的属性).
无论如何,保持配置界面尽可能通用是有意义的,因此如果需要,可以切换到另一种表示(例如,通过使用Apache Commons Configuration).
Mik*_*ler 15
使用XML文件的最大好处是XML声明了它的编码,而.properties却没有.
如果要将这些属性文件转换为N种语言,则这些文件可能会以N种不同的编码形式返回.如果你不小心,你或其他人可能会不可逆转地破坏角色编码.
如果您有大量重复数据,则处理起来会更简单
<connections> <connection>this</connection> <connection>that</connection> <connection>the other</connection> </connections>
而不是处理
connection1=this connection2=that connection3=the other
特别是如果您希望存储大量数据,或者必须存储在明确的层次结构中
如果你只是存储一些标量值,我每次都会选择简单的属性方法
如果您同时具有分层数据和重复的名称空间,请使用XML。
1)要仅在属性文件中模拟层次结构,只需使用点表示法即可:
a.b=The Joker
a.b.c=Batgirl
a.b=Batman
a.b=Superman
a.b.c=Supergirl
Run Code Online (Sandbox Code Playgroud)
因此,复杂的(分层的)数据表示不是*使用XML的原因。
2)对于仅重复数据,我们可以使用ini4j之类的第三方库在Java中显式固定属性文件本身中隐式量词上的计数标识符。
a.b=The Joker
a.b=Batgirl
a.b=Batman
Run Code Online (Sandbox Code Playgroud)
被翻译为(在后台)
a.b1=The Joker
a.b2=Batgirl
a.b3=Batman
Run Code Online (Sandbox Code Playgroud)
但是,对相同的名称属性进行计数仍然不能保持特定的父子关系。即。我们如何代表蝙蝠女与小丑或蝙蝠侠在一起?
因此,当同时需要两个功能时都需要xml。现在,我们可以确定第一个xml条目是我们想要的还是第二个。
[a]
[b]Joker[/b]
[b]
[c]Batgirl[/c]
[/b]
[a]
Run Code Online (Sandbox Code Playgroud)
- 要么 -
[a]
[b]Batman[/b]
[b]
[c]Batgirl[/c]
[/b]
[/a]
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参见.... http://ilupper.blogspot.com/2010/05/xml-vs-properties.html
| 归档时间: |
|
| 查看次数: |
26402 次 |
| 最近记录: |