android中解析text配置文件

Android中文件解析有xml解析,json解析等。这里要说的是解析txt配置文件,返回JavaBean对象。

有一点是,配置文件每一行有一条数据,有些数据可能并不是我们所需要的,每组数据里面包含的元素不一定相同,而且取出来的数据也得符合要求。

先看JavaBean:

public class UpgradeInfo {
	public String productID;
	public String version;
	public String loadUrl;
	public String vendor;
	
	public UpgradeInfo(){
		productID = "";
		version = "";
		loadUrl = "";
		vendor = "";
	}
}

解析txt,代码中有注释:

public UpgradeInfo parseTXTorPHP(InputStream inputStream) {

		DataInputStream dataInputStream = new DataInputStream(inputStream);
		String strLine = null;
		UpgradeInfo upgradeInfo = null;
		UpgradeInfo upgradeInfo_vendor = null;
		boolean hasVendorUpgradeInfo = false;
		int tag = 0;
		try {
			while (true) {
				strLine = dataInputStream.readLine();//一次读取一条数据
				if (strLine == null) {
					break;
				}
				if (strLine.startsWith("[")) {
					if (tag != 0) {
						mSb.append("{"); //每组数据以“[”开始。
					}
					tag = 1; //根据tag标签判断是否是第一组数据
				}
					mSb.append(strLine + ";");  //将所有字符串拼接
			}
			String[] arrys = mSb.toString().split("\\{");  //将字符串分组,得到每一组数据。
			for (String string : arrys) {
				if (!string.startsWith("[PRODUCTID]")) {
					Log.i(TAG, "current msg not start A312");
					continue;  //如果不满足条件则不创建bean对象,并进行下一组数据判断。
				}
				String[] aaStrings = string.split(";");   //将符合条件的组切割成每条数据
				String productIDString = placeS(aaStrings[0]);
				if (aaStrings.length == 3 && upgradeInfo == null) {
					upgradeInfo = new UpgradeInfo(); //满足条件时创建bean对象,添加数据
					upgradeInfo.productID = productIDString;
					upgradeInfo.version = aaStrings[1];
					upgradeInfo.loadUrl = aaStrings[2];
				} else if (aaStrings[3].equals("VENDOR") && aaStrings.length == 4 && upgradeInfo_vendor == null) { 
				//判断是否为null,文件中满足条件的数据有多条,只取第一条。
					upgradeInfo_vendor = new UpgradeInfo();
					upgradeInfo_vendor.productID = productIDString;
					upgradeInfo_vendor.version = aaStrings[1];
					upgradeInfo_vendor.loadUrl = aaStrings[2];
					upgradeInfo_vendor.vendor = aaStrings[3];
					hasVendorUpgradeInfo = true;  //此处做标记,为了返回更合适的数据。
				}else {
					Log.i(TAG, "Please check your configFile!");
				}
				
			}
			
			if (hasVendorUpgradeInfo) { //返回符合条件的数据
				return upgradeInfo_vendor;
			} else {
				return upgradeInfo;
			}  
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值