【发布时间】:2013-11-13 16:19:03
【问题描述】:
java 中是否有一些“本机”格式可以让我编写一个数据文件,然后我可以轻松地将其加载到Map<String, Collection<String>> 中?我宁愿这样做而不必编写任何重要的解析。这将初始化一个应用程序范围的 bean,因此它只在启动时运行一次。
我意识到我可以使用 JSON,然后使用 GSON 之类的东西来加载数据,但这对于看起来很简单的东西来说似乎有点过分了。如果我有闭包,我可以将其创建为属性文件,为我的集合使用特定的分隔符,并在分隔符上解析闭包,但这似乎不太优雅,最重要的是在 Java 中不可用8.
同样,我可以作为一个简单的属性文件加载,然后复制到解析各个属性值的 Map,但似乎又有点“hacky”。
我可以使用 XML,然后导入 XML,但这太过分了,我宁愿使用易于理解的简单文本格式。
我不反对使用来自 Apache Commons 或 Guava 等的东西,但还没有发现任何简单的东西。
【问题讨论】:
-
没有这样的东西。使用 JSON 或 XML 等标准格式。
-
至于矫枉过正的评论:是的,JSON 对于
String -> Collection<String>来说是“矫枉过正”,但您是否愿意为此使用一种格式,另一种格式用于字符串列表,另一种格式用于列表整数,另一个用于String -> String的地图等? -
为什么 XML 是多余的? Java SE直接支持
-
@GlennLane XML 太过分了,因为它对 XML 文件的编码变得更加复杂。从理论上讲,要正确执行此操作,将意味着创建一个 XSD(或至少是一个 DTD),然后编写 XML。虽然对于这样的事情,它仍然相当简单,但仅仅生成一个 Map
> 似乎还是有点矫枉过正。希望有更简单的东西。
标签: java map properties-file