Android应用开发Android:读取assets目录下文件(一)
白羽 2019-05-20 来源 :网络 阅读 1104 评论 0

摘要:本文将带你了解Android应用开发Android:读取assets目录下文件(一),希望本文对大家学Android有所帮助。

    本文将带你了解Android应用开发Android:读取assets目录下文件(一),希望本文对大家学Android有所帮助。


Android应用开发Android:读取assets目录下文件(一)


    在Android开发中,资源文件一般分为两种:
   
      1.可编译的资源文件,放在res目录下,例如布局文件,这种资源文件系统会在R.java里面自动生成该资源文件的ID,直接通过R.X.ID就可以访问。
      2.原生资源文件,保持原始的文件格式,存放在assets目录下。通过Android系统为我们提供的AssetManager,以简单的字节流的形式打开和读取这些资源文件。例如公司简介、服务协议等内容,通常放在这个文件夹。
   
    这篇文章先讲下读取assets目录下的txt文件,示例代码如下:
   

  package com.li.readassetfile;
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
     
    import android.app.Activity;
    import android.content.res.AssetManager;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.widget.TextView;
     
    public class ReadTxtActivity extends Activity {
     
        private TextView tvContent;
     
        @Override
        protected void onCreate(Bundle   savedInstanceState) {
              super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_read_txt);
     
            tvContent = (TextView)   findViewById(R.id.tvContent);
     
            new   ReadTxtTask().execute();
        }
     
        private class ReadTxtTask extends   AsyncTask{
     
            @Override
            protected String   doInBackground(Void... params) {
                AssetManager manager =   getResources().getAssets();
                try {
                    InputStream   inputStream = manager.open(""joke.txt"");
                    InputStreamReader isr   = new InputStreamReader(inputStream,
                              ""UTF-8"");
                    BufferedReader br =   new BufferedReader(isr);
                    StringBuilder sb =   new StringBuilder();
                    String length;
                    while ((length =   br.readLine()) != null) {
                        sb.append(length   + ""\n"");
                    }
                    //关流
                    br.close();
                    isr.close();
                      inputStream.close();
     
                    return   sb.toString();
                } catch (IOException e)   {
                      e.printStackTrace();
                }
                return   """";
            }
     
            @Override
            protected void   onPostExecute(String result) {
                  super.onPostExecute(result);
                tvContent.setText(result);
            }
        }
    }
   


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程