2012-03-23 34 views
0

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

编辑:继承人文件的部分,以及如何其格式的,它不是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> 

回答

1

由于您的文件内容与XML相似,因此最好尝试SAXParser。 你可以用这个来制作一个自定义的ContentHandler,所以你基本上可以指定你的标签,并且你可以自己编码文件的解析方式。

否则,如果SAXParser不起作用(无xml文件),您必须手工解析它,或者更好地,使文件结构像一个xml文件。

+0

不幸的是我没有对文件结构进行任何控制(不是我的程序,即时尝试使应用程序读取器),但我会尝试萨克斯分析器,看看它是否会与一个非XML文件,一个XML,但如果它没有,我会在哪里看看如何解决它手 – DRing 2012-03-24 13:46:33

+0

所以最后得到了SAXParser设置和测试,它的工作原理,感谢您的帮助 – DRing 2012-03-24 14:22:19

0

XML代码这将是有益的,如果你发布的文件看起来像一个例子。

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

相关问题