Android_010_打开并显示文本文件的内容

1. 先将需要打开的文本文件放在当前程序根目录下面的assets文件下面, 我这里是在assets文件夹里新创建了一个文本文件, 命名为test.txt, 在里面随便输入点内容, 如果图所示:

android Spinner不显示文字 android显示文本内容_xml

2. 在布局文件main.xml中输入创建一个Button 和一个 TextView, 代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<Button 
    android:id="@+id/btnOpen"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/btnOpenFile"
    />
<TextView 
    android:id="@+id/tvText"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
</LinearLayout>

3. 在java文件中, 输入下面的代码, 就可以实现打开文件内容并利用 TextView将其显示出来的目地.

package com.shy;

import java.io.IOException;
import java.io.InputStream;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class OpenFileActivity extends Activity {
    private Button btnOpen;
    private TextView tvText;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //利用控件id来获得控件的对象
        btnOpen = (Button)findViewById(R.id.btnOpen);
        tvText = (TextView)findViewById(R.id.tvText);
        //对btnOpen按钮添加监听器
        btnOpen.setOnClickListener(new btnOpenListener());
    }
    
    class btnOpenListener implements OnClickListener
    {

        public void onClick(View arg0)
        {
            // TODO Auto-generated method stub
            try
            {
                //将assets中的一个文件打开,并将内容赋值给一个 输入流
                InputStream is = getAssets().open("test.txt");
                //计算出这个输入流中字节的个数
                int size = is.available();
                //构造一个字节数组, 数组的大小等于从上面获得的字节的个数
                byte[] buffer = new byte[size];
                //将字节流存入到buffer变量中
                is.read(buffer);
                //关闭输入流
                is.close();
                //用utf8的字符编码格式将字节数组赋值给变量 text
                String text = new String(buffer, "utf8");
                //利用TextView将文件内容显示出来
                tvText.setText(text);
                
            }
            catch(IOException e)
            {
                new RuntimeException(e);
            }
        }
        
    }
}

4. 启动运行程序, 显示的界面如下:


android Spinner不显示文字 android显示文本内容_android_02


, 点击OpenFile 按钮, 就会显示出 test.txt文件中的内容, 如下图:


android Spinner不显示文字 android显示文本内容_android_03