如何将iOS工程中的.plist文件里的内容取出在android的工程中使用

一.

iOS方面操作

我先简短的介绍一下解决的思路,.plist文件里面放的可能是数组也可能是字典,我们如果直接用NSLog方法打印数组,字典的时候,我们会得到的
就是这样的编码格式的内容,这显然是不能用在android的,所以我们的思路是要将.plist中的内容打印为我们能处理的内容,那就是JsonString了。



iOS这边的做法,如图片所示,先将plist文件放入,然后读取出内部的数组信息,然后用SBJson转化为NSString,然后在NSLog打印出来,运行程序我们会得到

很好我们已经进行一半了,然后在控制台复制这些数据到一个文本文件中如

至此iOS这边的处理完成了,然后是txt文件跟android之间的处理手法,让我们继续看下去

android方面操作

首先现在android工程中的res文件夹中新建raw文件夹,然后将我们得到的areainfo.txt,放入到这个raw文件夹中,细心的你可能注意到了,areainfoi我改成小写了,大家留意一下,这里不要大写,不允许。跟着操作你应该会是这样的结构

然后我们要做的事情是把txt中的内容读取出来

InputStream inputStream = getResources().openRawResource(R.raw.areainfo); 
        String areaInfo = UtilTools.getStringFromInputStream(inputStream);
        
        JSONArray myJsonArray;
        try
        {
        myJsonArray = new JSONArray(areaInfo);
       
        for(int i=0 ; i < myJsonArray.length() ;i++)
        {
            //获取每一个JsonObject对象
            JSONObject provinceObject = myJsonArray.getJSONObject(i);
        
            //获取省区域的值
            String ProvinceName = provinceObject.getString("State");
            
            countries.add(ProvinceName);
//            Log.i("areaInfo", "省区域名称内容为:"+ProvinceName);
            //获取市区数组中对象的对象
            JSONArray cityArray = provinceObject.getJSONArray("Cities");
            
            List<String> tempCitiesForAdd = new ArrayList<String>();
            
            for(int j=0 ; j < cityArray.length() ;j++){
                //获取每一个JsonObject对象
                JSONObject cityObject = cityArray.getJSONObject(j);            
                //获取省区域的值
                String cityName = cityObject.getString("city");
                
                tempCitiesForAdd.add(cityName);
//                Log.i("areaInfo", "城市名称内容为:"+cityName);
            }
            
            cities.add(tempCitiesForAdd);

        }
    }catch (JSONException e)
    {
    }
我们可以这样
InputStream inputStream = getResources().openRawResource(R.raw.areainfo) ;从 txt 中将内容以输入流的方式读出来,然后我们再处理输入流,这里我也把 UtilTools 中的方法贴出来

/** 
* @author chenqiang
* @version 2015年11月6日 下午1:49:31
*/
public class UtilTools {
    
    //将输入流转化为字符串
    public static String getStringFromInputStream(InputStream inputStream) {
        InputStreamReader inputStreamReader = null;
        try {
            inputStreamReader = new InputStreamReader(inputStream, "utf-8");
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        }
        BufferedReader reader = new BufferedReader(inputStreamReader);
        StringBuffer sb = new StringBuffer("");
        String line;
        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line);
                sb.append("\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return sb.toString();
    }




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值