Android:读取assets目录下文件(一)

您所在的位置:网站首页 android读取文件夹下所有文件内容 Android:读取assets目录下文件(一)

Android:读取assets目录下文件(一)

2024-05-17 02:04| 来源: 网络整理| 查看: 265

在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); } } }

效果图: 读取txt文件

不要忘了关闭相关IO流。 另外,如果文件内容比较长,可能会引起ANR,所以这里使用AsyncTask来读取文件。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3