AndroidStudio——文件的读取之Raw&Assets的读取

来源:互联网 发布:inbodyband 知乎 编辑:程序博客网 时间:2024/06/07 09:47

ReadRawAndAssetsActivity代码:

public class ReadRawAndAssetsActivity extends AppCompatActivity {    private Button raw, assets;    private TextView show;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_read_raw_and_assets);        raw = (Button) findViewById(R.id.raw);        assets = (Button) findViewById(R.id.assets);        show = (TextView) findViewById(R.id.show);        raw.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                show.setText(readRaw());            }        });        assets.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                show.setText(readAssets());            }        });    }    //读取assets目录  不能写入    public String readAssets() {        StringBuilder sbd = new StringBuilder();        BufferedReader reader = null;        try {            InputStream is = getResources().getAssets().open("city");            reader = new BufferedReader(new InputStreamReader(is));            String row = "";            while ((row = reader.readLine()) != null) {                sbd.append(row);                sbd.append("\n");            }        } catch (IOException e) {            e.printStackTrace();        } finally {            if (reader != null) {                try {                    reader.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }        return sbd.toString();    }    //读取Raw文件   只能读不能写    public String readRaw() {        //有汉字用字符流来读        StringBuilder sbd = new StringBuilder();        BufferedReader reader = null;        InputStream is = null;        is = getResources().openRawResource(R.raw.settings);        reader = new BufferedReader(new InputStreamReader(is));        String row = "";        try {            while ((row = reader.readLine()) != null) {                sbd.append(row);                sbd.append("\n");            }        } catch (IOException e) {            e.printStackTrace();        } finally {            if (reader != null) {                try {                    reader.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }        return sbd.toString();    }}

activity_read_raw_and_assets布局文件:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.example.dell.jreduch008.ReadRawAndAssetsActivity"><Button    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:id="@+id/raw"    android:text="读取raw"    android:layout_alignParentTop="true"    android:layout_alignParentStart="true"    android:layout_marginStart="64dp" /><Button    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:id="@+id/assets"    android:text="读取assets"    android:layout_alignParentTop="true"    android:layout_alignParentEnd="true"    android:layout_marginEnd="50dp" />    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/show"        android:layout_alignParentBottom="true"        android:layout_below="@+id/raw"        android:layout_alignParentStart="true" /></RelativeLayout>
1 0