通过设备管理对象获取assets的文件资源

简介: 通过设备管理对象获取assets的文件资源

效果展示

具体实现

导入第三方库

在build.gradle(:app)的dependencies中加入以下代码引用第三方库

//Json库
implementation 'com.alibaba:fastjson:1.2.76'
• 1
• 2

项目结构

assets文件夹位置

assets文件夹需要带小绿标志,否则会找不到文件(可以看下面创建步骤来)

创建步骤

src右键New点击Folder下面的Assets Folder

+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

随后会出来这个页面,要选中Change Folder Location,然后接着看下面的图(有具体操作步骤)

+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

勾选换路径,这里选择放在src文件夹下,和main为同一级,点击Finish,创建后如果和博主的图标一致即创建成功

代码实现

ReadWriteUtils

package top.gaojc.util;

import android.content.Context;
import android.content.res.AssetManager;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class ReadWriteUtils{

  //从assets资源文件中读取返回字符串
    public static String readStringFromAssets(Context context, String fileName) {
        //通过设备管理对象 获取Asset的资源路径
        AssetManager assetManager = context.getAssets();

        InputStream inputStream = null;
        InputStreamReader isr = null;
        BufferedReader br = null;

        StringBuffer sb = new StringBuffer();
        try {
            inputStream = assetManager.open(fileName);
            isr = new InputStreamReader(inputStream);
            br = new BufferedReader(isr);

            sb.append(br.readLine());
            String line = null;
            while ((line = br.readLine()) != null) {
                sb.append("\n" + line);
            }
            br.close();
            isr.close();
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null) {
                    br.close();
                }
                if (isr != null) {
                    isr.close();
                }
                if (inputStream != null) {
                    inputStream.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sb.toString();
    }

}

Test.java

public class Test{

  private int intValue;
    private String strX;
    private String strY;
    
  //示例代码
  private void getAssetsValue() {
    String bannerConfig = DialogManager.readStringFromAssets(context, "test.json");
        if (!TextUtils.isEmpty(bannerConfig)) {
            try {
                JSONObject jsonObject = JSON.parseObject(bannerConfig);
                if (jsonObject.containsKey("intValue")) {
                    intValue = jsonObject.getIntValue("intValue");
                }
                if (jsonObject.containsKey("arr")) {
                    JSONObject jsonObject1 = jsonObject.getJSONObject("arr");
                    if (jsonObject1.containsKey("strX")) {
                        strX = jsonObject1.getString("strX");
                    }
                    if (jsonObject1.containsKey("strY")) {
                        strY = jsonObject1.getString("strY");
                    }
                }
            } catch (Throwable e) {
                e.printStackTrace();
            }
        }
    }
    
}
目录
相关文章
|
Dart Android开发 iOS开发
flutter 创建项目、运行项目、项目目录
flutter 创建项目、运行项目、项目目录
453 0
|
Java 编译器 Android开发
@OnLifecycleEnvent 被废弃,替代方案更简单
@OnLifecycleEnvent 被废弃,替代方案更简单
360 0
@OnLifecycleEnvent 被废弃,替代方案更简单
|
6天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
16天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1317 7
|
4天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
284 128
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
|
3天前
|
监控 JavaScript Java
基于大模型技术的反欺诈知识问答系统
随着互联网与金融科技发展,网络欺诈频发,构建高效反欺诈平台成为迫切需求。本文基于Java、Vue.js、Spring Boot与MySQL技术,设计实现集欺诈识别、宣传教育、用户互动于一体的反欺诈系统,提升公众防范意识,助力企业合规与用户权益保护。
|
15天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1375 87
|
3天前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。