游戏开发中,读取策划给的配置表是必不可少的,我在之前公司,策划给的是xml表来读取,现在公司策划给的是CSV表来读取,其实大同小异,也并不是什么难点,我就简单分享下Java如何读取XML文件和CSV文件。以下工具类可随意拿去使用。
Java读XML文件
如果是Maven项目,则依赖以下包(如果不是,则自己在项目添加配置相应jar包)
1 | <!-- dom4j begin --> |
读取XML文件应该是比较常见的,用dom4j就可以很简单的读出来,首先准备一个XML文件,来映射出所有的XML资源文件的名字,资源文件如下:
dataConfig.xml
1 |
|
示例资源XML文件如下
Test.xml
1 |
|
Java项目中建一个类,变量名与XML中属性名相同,Java代码通过这个XML文件来找出所有的资源XML文件,然后将XML文件中的属性值全部读取到类中,再把类放进Map,加载到内存中,这样,每次需要读取配置表,就可以直接从内存中读取,快速且方便
以下是XmlDataLoader.java,作用是从数据表中读取属性值到内存
1 | package com.hjc._36.util.xml; |
如上的测试方法中看出,调用方式很简单,只需加载到映射XML文件,即可读取所有的配置XML文件,调用load()方法后,配置表就全部加载到了内存,我们通过以下类——TempletService.java来对这些配置数据进行管理:
1 | package com.hjc._36.util.csv; |
在load()中,变用到了上述类的registerObject方法来添加数据,在使用时,只需要调用listAll方法即可,在上面代码中的测试代码已经写明了用法。
Java读取CSV文件
Java读CSV文件与读XML文件如出一辙,大致思路同上
dataConfig.xml
1 |
|
Test.csv如下:
1 | 等级,1星,2星,3星,4星,5星,6星,7星,8星,9星,10星,11星,12星,13星,14星,15星,16星,17星,18星,19星,20星,21星,22星,23星,24星,25星 |
如上CSV表大家也能看出来,CSV文件中的数据是以一定规律呈现的,解析CSV便是根据CSV文件的这些特性来进行解析的,解析工具类CsvParser.java代码如下:
1 | package com.hjc._36.util.csv; |
CSV解析与XML解析的区别仅限于此,XML使用SaxReader来进行解析,而CSV自定义解析方式(当然网上也有很多别得第三方解析工具),接下来的步骤与XML解析一模一样,CsvDataLoader.java稍有不同的地方就是解析CSV文件的部分,代码如下:
1 | package com.hjc._36.util.csv; |
最后load()加载过后,依然使用TempletService来进行管理,使用方法也相同,具体代码参照上面。