Android读取txt信息思路及Demo<软件工程作业一>

这篇博客主要介绍了如何在Android中读取SD卡上的txt文件,包括所需的权限设置、文件路径查找和使用FileInputStream进行读取。通过正则表达式处理文本,并在异步线程中执行以避免阻塞UI。内容还包括计算单词出现频率的示例,以及软件截图、性能测试和源码分享。
摘要由CSDN通过智能技术生成

Android读取txt文件,首先要想好读取哪个地方的txt文件,可供选择的有SD卡上的txt文件,还有开发中的txt文件。前者明显要复杂许多,添加权限,寻找文件位置,将文件以流的形式读取出来等等。而后者只需要将文件的位置找到即可。

我们这里重点讲讲前者,后者会一笔带过。

现在我们要讲讲通用步骤:

public static String getString(InputStream inputStream){
		InputStreamReader inputStreamReader = null;
		
		inputStreamReader = new InputStreamReader(inputStream);
		
		BufferedReader reader = new BufferedReader(inputStreamReader);
		
		StringBuffer sb = new StringBuffer();
		String line;
		
		try {
			while((line=reader.readLine())!=null){
				sb.append(line+"\n");
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		return sb.toString();
	}
以上代码是为了将inputStream转化成我们要得到的txt文件中真正的内容。这里之所以使用InputStreamReader是因为它是字节流通向字符流的桥梁。 InputStream 的作用是标志那些从不同数据起源产生输入的类。这些数据起源包括(每个都有一个相关的InputStream子类):

(1) 字节说组

(2) String对象

(3) 文件

(4) “管道”,它的工作原理与现实生活中的管道类似:将一些东西一端置入,它们在另一端输出。

(5) 一个由其他种类的流组成的序列,以便我们将其统一收集合并到一个流内。

(6) 其他数据集,如Internet连接等。

而显然我们需要读取的txt文件属于文件类型的,所以我们使用FileInputStream类,既然用到了FileInputStream那么我们就得考虑用File,而这个File的路径就得考虑两种方案了

我们这里主要讨论SD卡上的方案。代码如下

package com.read.txt;

import java.io.File;
import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;

import com.read.txt.FileChooserAdapter.FileInfo;
import com.readtxt.R;

public class FileChooserActivity extends Activity {
	
	private GridView mGridView;
	private View mBackView;
	private View mBtExit;
	private TextView mTvPath ;
	
	private String mSdcardRootPath ;  //sdcard 根路径
	private String mLastFilePath ;    //当前显示的路径
	
	private ArrayList<FileInfo> mFileLists  ;
	private FileChooserAdapter mAdatper ;
	
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.filechooser_show);

		mSdcardRootPath = Environment.getExternalStorageDirectory().getAbsolutePath();

		mBackView = find
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值