android读取文件的方法(只用于记录,方便以后查询使用)

1.读取asset中的json文件,只需传入context和要读的json文件名即可:

StringBuilder newstringBuilder = new StringBuilder();
        InputStream inputStream = null;
        try { 
            inputStream = context.getResources().getAssets().open(fileName);
            InputStreamReader isr = new InputStreamReader(inputStream);
            BufferedReader reader = new BufferedReader(isr);
            String jsonLine;
            while ((jsonLine = reader.readLine()) != null) {
                newstringBuilder.append(jsonLine);
            }
            reader.close();
            isr.close();
            inputStream.close();
        } catch (Exception e) { 
            e.printStackTrace(); 
        }
        try{
            String result =  newstringBuilder .toString();
            Gson gson = new Gson();
            ProvinceCityJson provinceCityJson = gson.fromJson(result, JsonDate.class);
        }catch (Exception e) {
            e.printStackTrace();
            Log.d("ADDB", "error====" + e.getMessage());
        }

 

 

2.读取手机sd卡根目录中的json文件,传入context和json文件名即可,如文件不在根目录,可对jsonpath进行目录的更改:

StringBuffer sb = new StringBuffer();
        try { 
            String jsonpath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + fileName;
            FileInputStream input = new FileInputStream(jsonpath);
            byte[] temp = new byte[1024];

            int len = 0;
            //读取文件内容:
            while ((len = input.read(temp)) > 0) {
                sb.append(new String(temp, 0, len));
            }
            //关闭输入流
            input.close();
            
        } catch (Exception e) { 
            e.printStackTrace(); 
        }
        try{
            testJsonBeans = new Gson().fromJson(sb.toString(), new TypeToken<List<TestJsonBean>>(){}.getType());
        }catch (Exception e) {
            e.printStackTrace();
            Log.d("ADDB", "error====" + e.getMessage());
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值