[Android] 010_打开并显示文本文件的内容

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

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

clip_image001

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

View Code
<?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将其显示出来的目地.

View Code
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. 启动运行程序, 显示的界面如下:

clip_image002

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

clip_image003

posted @ 2011-07-13 23:17  ShanHaiyang  阅读(1597)  评论(0编辑  收藏  举报