如何在Android中解析自定义文件

时间:2012-03-23 21:23:28

标签: android file

我正在为我使用的程序做读者。信息以自定义文件类型(.BSMX)导出。当我在记事本中打开文件时,它是一堆与XML结构相似的标签。我想知道如何像解析XML文件一样解析文件,以便将数据存储到自定义对象中以使用数据。

编辑:这是文件的一部分以及它的格式,它不是XML,并且顶部没有xml代码

            <_MOD_>2012-03-23</_MOD_>
            <F_E_NAME>FUggin Hiccups BIAB</F_E_NAME>
            <F_E_MASH_VOL>896.0000000</F_E_MASH_VOL>
            <F_E_TUN_MASS>35.2000000</F_E_TUN_MASS>
            <F_E_BOIL_RATE_FLAG>1</F_E_BOIL_RATE_FLAG>
            <F_E_TUN_SPECIFIC_HEAT>0.1200000</F_E_TUN_SPECIFIC_HEAT>
            <F_E_TUN_DEADSPACE>0.0000000</F_E_TUN_DEADSPACE>
            <F_E_TUN_ADJ_DEADSPACE>0</F_E_TUN_ADJ_DEADSPACE>
            <F_E_CALC_BOIL>1</F_E_CALC_BOIL>
            <F_E_BOIL_VOL>894.7200000</F_E_BOIL_VOL>
            <F_E_BOIL_TIME>60.0000000</F_E_BOIL_TIME>
            <F_E_OLD_EVAP_RATE>10.0000000</F_E_OLD_EVAP_RATE>
            <F_EQUIP_39>1</F_EQUIP_39>
            <F_E_BOIL_OFF>96.0000000</F_E_BOIL_OFF>
            <F_E_TRUB_LOSS>128.0000000</F_E_TRUB_LOSS>
            <F_E_COOL_PCT>4.0000000</F_E_COOL_PCT>
            <F_E_TOP_UP_KETTLE>256.0000000</F_E_TOP_UP_KETTLE>
            <F_E_BATCH_VOL>640.0000000</F_E_BATCH_VOL>
            <F_E_FERMENTER_LOSS>64.0000000</F_E_FERMENTER_LOSS>
            <F_E_TOP_UP>0.0000000</F_E_TOP_UP>
            <F_E_EFFICIENCY>67.4000000</F_E_EFFICIENCY>
            <F_E_HOP_UTIL>100.0000000</F_E_HOP_UTIL>
        </F_R_EQUIPMENT>

2 个答案:

答案 0 :(得分:1)

由于您的文件内容类似于XML,因此您最好尝试使用SAXParser。 您可以使用此方法创建自定义ContentHandler,因此您基本上可以指定标记,并且可以自己编写如何解析文件的代码。

否则,如果SAXParser不起作用(没有xml文件),则必须手动解析,或者更好,使文件结构化为xml文件。

答案 1 :(得分:0)

如果您发布文件的样子,将会很有帮助。

基本上,根据文件的大小,您可以使用InputStream阅读器,将文件entirley读入String并使用类似.split()方法的标签将此字符串拆分。之后,您可以将所需的数据存储到数组中。