Android:读取assets目录下文件(一) |
您所在的位置:网站首页 › 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); } } }效果图:
不要忘了关闭相关IO流。 另外,如果文件内容比较长,可能会引起ANR,所以这里使用AsyncTask来读取文件。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |