Android 读取assets中json文件

2023-11-16

1.通过BufferedReader方式读取

    fun getAssetsFile(fileName: String, context: Context): String {
        //将json数据变成字符串
        val stringBuilder = StringBuilder()
        try {
            //获取assets资源管理器
            val assetManager = context.assets
            //通过管理器打开文件并读取
            val bf = BufferedReader(InputStreamReader(
                    assetManager.open(fileName)))
            while (true) {
                val readLine = bf.readLine()
                if (readLine != null) {
                    stringBuilder.append(readLine)
                }
            }
            bf.close()
        } catch (e: IOException) {
            e.printStackTrace()
        }
        return stringBuilder.toString()
    }

2.通过inputStream循环方式读取

 fun getAssetsFile(fileName: String, context: Context): String {
        val stringBuilder = StringBuilder()
        try {
            val assetManager = context.assets
            var inputStream = assetManager.open(fileName)
            val bytes = ByteArray(1024)
            while (true) {
                val temp = inputStream.read(bytes)
                if (temp == -1) {
                    break
                }
                val length = String(bytes, 0, temp)
                stringBuilder.append(length)
            }
            inputStream.close()
        } catch (e: Exception) {
            e.printStackTrace()
        }
        return stringBuilder.toString()
    }

3.通过InputStream.available()方式读取

    fun getAssetsFile(fileName: String, context: Context): String {
        val stringBuilder = StringBuilder()
        var inputStream: InputStream? = null
        try {
            val assetManager = context.assets
              inputStream = assetManager.open(fileName)
            val available = inputStream.available()
            val bytes = ByteArray(available)
            if (inputStream.read(bytes) > 0) {
                val result = String(bytes)
                stringBuilder.append(result)
            }
        } catch (e: Exception) {
            e.printStackTrace()
        }finally {
            if (inputStream != null) {
                inputStream.close()
            }
        }
        return stringBuilder.toString()
    }

调用即可

JsonUtil.getAssetsFile("offline.json",mActivity)

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 读取assets中json文件 的相关文章

随机推荐

  • Python基础07

    Python基础07 学习07 嵌套函数 内部函数 嵌套函数 在函数内部定义的函数 上面程序中 f2 就是定义在f1 函数内部的函数 f2 的定义和调用都在f1 函数内部 嵌套函数的使用情况 1 封装 数据隐藏 外部无法访问 嵌套函数 2
  • Equalize the Remainders CodeForces - 999D(set相关函数使用)

    题意 给你一个大小为n的数组 m是n的一个divisor 每次可以对ai 1 问最少的次数让数组中的每个元素除m 的余数 从0到m 1 各有n m个 题解 贪心思想如果余数要加 那么能加最少就加最少 我找出要加到最少的目标余数进而就可以的出
  • Mac系统 wps/word和endnote关联,导入参考文献

    1 确保wps for Mac 版本支持关联 官网上从1 4 0版本开始支持 查看软件版本 2 确保endnote版本是9及以上 最好是最新版本 更新软件版本 EndNote引用样式 在 EndNote 界面上依次单击 编辑 Edit gt
  • python 中,如何在一个函数中调用另一个函数返回的多个值中的一个?

    在一个函数中调用另一个函数返回的多个值中的一个 首先 定义了一个函数 代码如下 def createDataSet group array 1 0 1 1 1 0 1 0 0 0 0 0 1 labels A A B B return gr
  • 解决layui轮播图满屏是高度自适应的问题

    在做官网时 遇到轮播图的问题 本来自己写了个轮播图 怎奈有个问题 当我打开页面后去浏览其他页面 回来首页后会有图片会来回闪动 没有正确轮播 一直没有解决 后来看到了layui插件的轮播图 就拿过来用了 但是图片高度不会自适应 图片变形 如图
  • opengl纹理映射的学习总结

    1 不同的滤波方式的效果区别 使用Nearest滤波纹理的效果 看起来很斑驳 使用MipMapped的效果 看起来很平滑 2 void glTexImage1D GLenum target GLint level GLint interna
  • 【状态估计】基于增强数值稳定性的无迹卡尔曼滤波多机电力系统动态状态估计(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据 文章讲解 1 概述 文献来源 摘要 为了提高用于电
  • 7-数据结构-单链表的插入删除操作

    问题 单链表的各种插入和删除操作 思路 1 按位插入 带头结点 创建一个单链表结点 typedef struct lnode int data lnode next lnode linklist 初始化单链表 void inilist li
  • 怎么在树莓派上搭建WordPress博客网站,并发布到外网可访问?

    文章目录 序幕 概述 1 安装 PHP 2 安装MySQL数据库 3 安装 Wordpress 4 设置您的 WordPress 数据库 设置 MySQL MariaDB 创建 WordPress 数据库 5 WordPress confi
  • 【华为OD机试真题 C语言】11、第K个排列

    文章目录 一 题目 题目描述 输入输出 样例1 样例2 二 思路参考 三 代码参考 C语言 作者 鲨鱼狼臧 个人博客首页 鲨鱼狼臧 专栏介绍 2023华为OD机试真题 使用C语言进行解答 专栏每篇文章都包括真题 思路参考 代码分析 订阅有问
  • 随着新技术的产生以及计算机运算速度的不断提高,传统的加密技术已无法满足应用的需求,请问目前新的密码技术有哪些?并简要分析。

    目前新的密码技术包括 1 基于量子力学的密码技术 Quantum cryptography 该技术是利用量子力学原理来保护信息安全 主要应用于信息传输领域 其基本原理是通过量子态来实现信息的加密和解密 从而保证传输过程中不会被窃听或篡改 2
  • c语言如何算字节,C语言中结构字节的计算方法

    在讨论计算方法之前 我们先讨论一些概念 一个是偏移量 另一个是内存对齐 让我来谈谈偏移量 百度百科将其定义为 存储单元的实际地址与其所在的段的段地址之间的距离称为段内偏移量 也称为 有效地址 或抵消 在结构中 它可能是指结构变量中成员地址与
  • 鼠标点击页面出现富强自由等文字JS特效

    在其他博客看到一款JS特效 感觉很不错 所有网上收集过来分享给大家 效果参考本网站 添加点击特效 点击页面会显示 富强 民主 文明 和谐 自由 平等 公正 法治 爱国 敬业 诚信 友善 把以下代码添加到当前主题的head php或foote
  • dubbo zookeeper spring mvc简单整合的工程例子demo

    该demo只是简单的集成 包括了5个工程 都是maven结构的 如下图所示 服务端 dubbo demo server api 服务接口定义工程 dubbo demo server biz 服务接口实现工程 web dubbo server
  • 机房预约系统

    项目要求 源码 头文件 computerRoom h pragma once include
  • 获取IP地址

    IPAddress vAddress null if REGEX URL Match vIP Length lt 1 IPHostEntry vDns Dns GetHostEntry vIP if vDns AddressList Len
  • 推荐系统的循序进阶读物(从入门到精通)

    为了方便大家从理论到实践 从入门到精通 循序渐进系统地理解和掌握推荐系统相关知识 特做了个读物清单 大家可以按此表阅读 也欢迎提出意见和指出未标明的经典文献以丰富各学科需求 为避免初学者疲于奔命 每个方向只推荐几篇经典文献 1 中文综述 了
  • 解决127.0.0.1 已拒绝连接的方法

    127 0 0 1 已拒绝连接 出现这种情况时 打开cmd 在cmd中 ping 127 0 0 1 会出现下图情况 在cmd中ping 127 0 0 1解析出来的是IPV6的 1 原因是windows有个优先解析列表 当ipv6的优先级
  • 电源篇 -- 升压电路 Boost

    感谢阅读本文 在接下来很长的一段时间里 我将陆续分享项目实战经验 从电源 单片机 晶体管 驱动电路 显示电路 有线通讯 无线通信 传感器 原理图设计 PCB设计 软件设计 上位机等 给新手综合学习的平台 给老司机交流的平台 所有文章来源于项
  • Android 读取assets中json文件

    1 通过BufferedReader方式读取 fun getAssetsFile fileName String context Context String 将json数据变成字符串 val stringBuilder StringBui