千家信息网

Android中如何读写assets目录中的资源文件

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要讲解了"Android中如何读写assets目录中的资源文件",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Android中如何读写asse
千家信息网最后更新 2026年11月03日Android中如何读写assets目录中的资源文件

这篇文章主要讲解了"Android中如何读写assets目录中的资源文件",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Android中如何读写assets目录中的资源文件"吧!

一、AssetManager读取文件常用的几个API

1.文件读取方式
AssetManager.open(String filename),返回的是一个InputSteam类型的字节流,这里的filename必须是文件,而不能是文件夹,AssetManager打开 资源文件的open方法是一个重载方法,可以添加一个打开方式的int参数,根据参数不同可做相应操作。
2.资源文件是可以存在文件夹以及子目录
public final String[]list(String path),返回当前目录下面的所有文件以及子目录的名称。可以通过递归遍历整个文件目录,实现所有资源文件的访问。String[] Array of strings, one for each asset. These file names are relative to 'path'. You can open the file by concatenating 'path' and a name in the returned string (via File) and passing that to open().

二、相关实现代码
资源APK(A.apk)

具体实现代码片段,由于使用系统权限,生成的路径可以自己改一下B.apk

public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        try {           ctxDealFile = this.createPackageContext("com.zlc.ipanel",                   Context.CONTEXT_IGNORE_SECURITY);        } catch (NameNotFoundException e1) {            // TODO Auto-generated catch block            e1.printStackTrace();        }        btn3.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                 // TODO Auto-generated method stub                try {                     String uiFileName = "ipanelJoin";                     deepFile(ctxDealFile, uiFileName);              } catch (Exception e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                    textView.setText("file is wrong");               }             }       });         // } public void deepFile(Context ctxDealFile, String path) {         try {            String str[] = ctxDealFile.getAssets().list(path);           if (str.length > 0) {//如果是目录                File file = new File("/data/" + path);               file.mkdirs();               for (String string : str) {                  path = path + "/" + string;                  System.out.println("zhoulc:\t" + path);                   // textView.setText(textView.getText()+"\t"+path+"\t");                    deepFile(ctxDealFile, path);                    path = path.substring(0, path.lastIndexOf('/'));               }            } else {//如果是文件                InputStream is = ctxDealFile.getAssets().open(path);                 FileOutputStream fos = new FileOutputStream(new File("/data/"                       + path));               byte[] buffer = new byte[1024];               int count = 0;                 while (true) {                   count++;                   int len = is.read(buffer);                    if (len == -1) {                       break;                  }                   fos.write(buffer, 0, len);              }              is.close();              fos.close();          }       } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } }

感谢各位的阅读,以上就是"Android中如何读写assets目录中的资源文件"的内容了,经过本文的学习后,相信大家对Android中如何读写assets目录中的资源文件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

文件 资源 目录 学习 代码 内容 参数 子目 子目录 文件夹 方式 方法 不同 可以通过 名称 就是 常用 思路 情况 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中智农互联网科技 深圳市人人互联网科技有限公司 广州万易互联网科技有限公司 科技互联网项目 科技企业和互联网企业 广州互联网科技公司 金融科技 互联网金融 互联网科技公司怎么样 银优互联网科技有限公司 苏州大垚互联网科技 互联网科技公司有哪些 佰商互联网科技有限公司 顺网科技2021年互联网排名 深圳市罗太互联网科技有限公司 元气玛特互联网科技公司是外包吗 互联网安防科技感 35岁以上互联网科技行业 互联网时代高科技布局 第三届互联网大会安防黑科技 前海云享互联网科技 中资互联网科技 卫星互联网科技股票 互联网实体化科技化 须眉科技是互联网公司吗 重庆威客帮互联网科技 受益于互联网科技的高速发展 国大互联网教育科技有限公司工作 互联网金融科技展 互联网金融科技名词解释 上海万顺科技互联网有限公司招聘
0