安卓之读取raw文件夹下得txt文件

来源:互联网 发布:java培训后工资多少 编辑:程序博客网 时间:2024/06/10 08:07

安卓读取raw文件夹下得txt文件

相信老哥们对raw文件夹不陌生:

   res/raw文件夹下得内容会原封不动得打包进apk中,不会被编译成二进制文件。

    还有一点就是res/raw文件夹不可以有目录结构。

使用:

    res/raw下得文件会被映射到R.JAVA中,所以访问时我们可以通过R.id.filename来获取。在xml文件中你也可以通过@raw/得方       式来引用您想引用得文件。


     Demo:读取res/raw下存放的一个text文件

Demo示例:


主要代码(对文件操作):

InputStream is = mContext.getResources().openRawResource(R.raw.disclaimer);//把文件转换为输入流StringBuffer response = new StringBuffer();   //创建StringBuffer实例BufferedReader br = new BufferedReader(new InputStreamReader(is));//根据is创建缓冲字符输入流String s = null;//创建s变量   try {//try语句捕获异常    while ((s = br.readLine()) != null) {//把这一行的值赋值给变量s,并判断是否有值     response.append(s);//把值添加进StringBuffer     response.append("\n");//再添加一个换行符       }       } catch (IOException e) {        // TODO Auto-generated catch block//catch异常处理         e.printStackTrace();//得到错误的实例, 调用方法在命令行打印程序出错的位置及原因       } finally {//finally try语句大多数情况下都会执行的代码块        try {         if (is != null) {//如果文件输入流不为空             is.close();//调用close函数关掉输入流            }         if (br != null) {//如果缓冲字符输入流不为空             br.close();//调用close函数关掉缓冲字符输入流            }        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();       }       }


Code_MainActivity:

package com.contentraw.contentraw;import android.content.Context;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ProgressBar;import android.widget.TextView;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class MainActivity extends AppCompatActivity {    private TextView textview_content;    private ProgressBar mProgressBar;    private Context mContext = MainActivity.this;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        textview_content = (TextView) findViewById(R.id.textview_content);        mProgressBar = (ProgressBar) findViewById(R.id.mProgressBar);        setContentData();    }    private void setContentData() {        new AsyncTask<Void, Void, String>() {            @Override            protected void onPreExecute() {                super.onPreExecute();                mProgressBar.setVisibility(View.VISIBLE);            }            @Override            protected String doInBackground(Void... paramArrayOfParams) {                InputStream is = mContext.getResources().openRawResource(R.raw.disclaimer);                StringBuffer response = new StringBuffer();                BufferedReader br = new BufferedReader(new InputStreamReader(is));                String s = null;                try {                    while ((s = br.readLine()) != null) {                        response.append(s);                        response.append("\n");                    }                } catch (IOException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                } finally {                    try {                        if (is != null) {                            is.close();                        }                        if (br != null) {                            br.close();                        }                    } catch (IOException e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                    }                }                return response.toString();            }            @Override            protected void onPostExecute(String result) {                super.onPostExecute(result);                mProgressBar.setVisibility(View.GONE);                textview_content.setText(result);            }        }.execute(null, null, null);    }}

Demo直达下载通道



如有问题请多指正,您的指正使我更正确的前行.



原创粉丝点击