Как разобрать пользовательский файл в Android - PullRequest
0 голосов
/ 24 марта 2012

Я делаю ридер для программы, которую я использую.Информация экспортируется в пользовательский тип файла (.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 ]

1 голос
/ 24 марта 2012

Поскольку содержимое вашего файла напоминает XML, лучше всего попробовать SAXParser. Вы можете создать собственный ContentHandler с этим, так что вы в основном указываете свои теги, и вы можете сами кодировать, как будет анализироваться файл.

В противном случае, если SAXParser не работает (нет xml-файла), вы должны разобрать его вручную, или, лучше, сделать файл структурированным как xml-файл.

0 голосов
/ 24 марта 2012

Было бы полезно, если вы опубликуете пример того, как выглядит файл.

В основном, в зависимости от размера файла, вы можете использовать считыватель InputStream, считывать файл entirley в строку и разбивать эту строку по тегам, используя что-то вроде метода .split (). После этого вы можете сохранить нужные данные в массиве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...