前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过设备管理对象获取assets的文件资源

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

作者头像
是阿超
发布2022-09-21 20:12:22
8770
发布2022-09-21 20:12:22
举报
文章被收录于专栏:CSDNCSDN

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

效果展示

在这里插入图片描述
在这里插入图片描述

具体实现

导入第三方库

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

代码语言:javascript
复制
//Json库
implementation 'com.alibaba:fastjson:1.2.76'

项目结构

assets文件夹位置

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

在这里插入图片描述
在这里插入图片描述

创建步骤

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

代码实现

ReadWriteUtils

代码语言:javascript
复制
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

代码语言:javascript
复制
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();
            }
        }
    }
    
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 通过设备管理对象获取assets的文件资源
  • 效果展示
  • 具体实现
    • 导入第三方库
      • 项目结构
        • assets文件夹位置
        • 创建步骤
      • 代码实现
        • ReadWriteUtils
        • Test.java
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档