Android读取txt文本文档
- 格式:doc
- 大小:140.00 KB
- 文档页数:5
android android读取资源文件的方法-回复Android读取资源文件是开发中常见的操作,对于开发者来说,了解如何读取资源文件是非常重要的。
本文将逐步解释在Android中读取资源文件的方法,帮助开发者更好地理解并使用这些技术。
在Android中,资源文件用于存储应用程序所需的各种资源,例如布局文件、字符串、图像、音频、颜色等。
通过读取这些资源文件,开发者可以在应用程序中使用这些资源,为应用程序添加更多的功能和交互性。
首先,我们需要了解Android资源文件的结构。
在Android项目中,所有的资源文件都存储在res目录下,这是一个专门用于存储资源文件的目录。
在res目录下,可以根据资源的类型创建不同的目录,如layout目录用于存储布局文件、drawable目录用于存储图像文件、values目录用于存储字符串和常量等。
接下来,我们将详细介绍几种常见的读取资源文件的方法:1. 使用资源IDAndroid系统为每个资源文件分配了一个唯一的资源ID。
通过资源ID,我们可以直接访问资源文件。
例如,要访问一个布局文件,可以使用findViewById()方法,传入布局文件的资源ID,然后返回对应的View 对象。
LinearLayout layout = findViewById(yout.activity_main);同样,通过资源ID还可以访问字符串资源、图像资源等。
例如,获取字符串资源的方法如下:String message = getResources().getString(R.string.app_name);2. 使用资源名除了使用资源ID,我们还可以使用资源的名称来读取资源文件。
名称是资源文件的唯一标识符,通常以“”符号开头。
例如,要访问一个图像资源,可以使用“drawable/”前缀加上资源名称的方式,如下所示:int imageResId =getResources().getIdentifier("drawable/my_image", null, getPackageName());Drawable image = getResources().getDrawable(imageResId);这个方法通过资源名称查找资源ID,并返回对应的Drawable对象。
Android 简易读写文件操作(转)代码如下:1.保存文件的主要代码保存的主代码1bSave.setOnClickListener(new View.OnClickListener() { 23 @Override4 public void onClick(View v) {5 // TODO Auto-generated method stub6 resId=R.string.success;7 file_name=filename.getText().toString();8 file_content=filecontent.getText().toStri ng();9 /* openFileOutput API10 * FileOutputStream openFileOutput (String name, int mode)11 * Open a private file associated with thi s Context's application package for writing. Creates the fi le if it doesn't already exist.12 */13 /* Context四种模式的API14 * Context.MODE_APPEND -->if the file alre ady exists then write data to the end of the existing file instead of erasing it.15 * Context.MODE_PRIVATE -->the default mod e, where the created file can only be accessed by the calli ng application (or all applications sharing the same user ID).16 * Context.MODE_WORLD_READABLE -->allow al l other applications to have read access to the created file.17 * Context.MODE_WORLD_WRITEABLE -->allow a ll other applications to have write access to the created f ile.18 */19 flag=InsertInfo();20 if(flag){21 try{22 OutputStream outStream=FileStoreActivity.this.openFileOutput(file_name, MODE_PRIVATE);23 FileService.save(outStream, file_co ntent);2425 }catch(Exception e){26 Log.e(TAG, e.toString());27 resId=R.string.error;28 }29 Toast.makeText(FileStoreActivity.this, resId, Toast.LENGTH_LONG).show();30 }31 }323334 });2.读取文件的主要代码读取主代码1Button bRead=(Button)findViewById(R.id.read);2 bRead.setOnClickListener(new View.OnClickListene r() {34 @Override5 public void onClick(View v) {6 // TODO Auto-generated method stub7 //此时隐藏了文件内容框和文件内容的label8 filecontent.setVisibility(View.GONE);9 TextView content=(TextView)findViewById(R. id.content);10 content.setVisibility(View.GONE);11 InputStream inStream;12 file_name=filename.getText().toString(); 1314 /* API15 * FileInputStream openFileInput (String n ame)16 * Open a private file associated with this Context's application package for reading.17 */18 try {19 inStream = FileStoreActivity.this.openFileInput(file_name);20 String context=FileService.read(inStre am).toString();21 Toast.makeText(FileStoreActivity.this, context, Toast.LENGTH_LONG).show();22 } catch (Exception e) {23 Log.e(TAG,e.toString());24 resId=R.string.error;25 }26 }27 });3.关于编者的代码关于编码代码Button bAbout=(Button)findViewById(R.id.about);bAbout.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubnew AlertDialog.Builder(FileStoreActivity.th is).setTitle("编者信息").setMessage("编者: naive_monk" + " \n"+ "爱好:篮球、音乐、交友" + "\n"+ "Q Q:1271522052" + "\n"+ "邮箱:summerdir@" + "\n"+ "所在城市:广东惠州 " + "\n").setCancelable(false).setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int id) {// TODO Auto-generated method s tubdialog.dismiss();}}).setNegativeButton("退出",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int id) {// TODO Auto-generated method s tubdialog.dismiss();}}).show();}});4.业务代码代码/** 保存文件*/public static void save(OutputStream outStream, String content) throws Exception {// 写入数据outStream.write(content.getBytes());outStream.close();}/** 读取文件*/public static String read(InputStream inStream) throws Exception {// 字节流ByteArrayOutputStream outStream = new ByteArrayOutp utStream();byte[] buffer = new byte[1024];int len = -1;//获取字节数据while ((len = inStream.read(buffer)) != -1) {outStream.write(buffer, 0, len);}//得到字节数据byte[] data = outStream.toByteArray();outStream.close();inStream.close();return new String(data);}四、小结这个例子只是简单的操作文件的读写,很多地方都不够完善,希望有兴趣的网友们可以互相交流下~~~android中如何判断一个文件是否存在?public boolean fileIsExists(){File f=new File("stockDic.dat");if(!f.exists()){return false;}return true;}Android数据存储之文件存储首先给大家介绍使用文件如何对数据进行存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。
android android读取资源文件的方法-回复Android是一个开放的移动操作系统,提供了丰富的资源文件用于应用程序的开发。
资源文件可以包括文本、图像、音频、视频等各种类型的资源。
在开发Android应用程序时,经常需要从资源文件中读取数据,本文将详细介绍Android读取资源文件的方法。
1. 创建资源文件在res目录下创建一个名为"raw"的文件夹(如果不存在的话),用于存放将要读取的资源文件。
在该文件夹下添加一个文本文件,命名为"example.txt"作为示例。
2. 获取资源文件的URI路径在代码中通过getResources()方法获取Resources对象,再通过其openRawResource()方法获取资源文件的InputStream对象。
要获取资源文件的URI路径可以使用以下代码:javaUri uri = Uri.parse("android.resource:包名/raw/example");其中,"包名"是你的应用程序的包名,"raw"是存放资源文件的文件夹名,"example"是文件名。
3. 使用InputStream读取资源文件内容通过获取的InputStream对象,我们可以使用Java的标准IO操作进行读取。
读取资源文件的内容可以使用以下代码:javatry {InputStream inputStream =getResources().openRawResource(R.raw.example);InputStreamReader inputStreamReader = new InputStreamReader(inputStream);BufferedReader bufferedReader = newBufferedReader(inputStreamReader);StringBuilder stringBuilder = new StringBuilder();String line;while ((line = bufferedReader.readLine()) != null) {stringBuilder.append(line);}String content = stringBuilder.toString();bufferedReader.close();inputStreamReader.close();inputStream.close();处理读取到的资源文件内容} catch (Exception e) {e.printStackTrace();}4. 使用ContentResolver读取资源文件内容另一种读取资源文件的方法是使用ContentResolver类。
AndroidStudio如何获取text⽂本内容1.找到⽬录的main先建⽴assets格式的⽂件夹2.再把需要读取的txt ⽂件放⼊到该⽂件夹下(名字随意),这⾥取 list.txt.⽂件内容格式如下3.读取⽂本内容⼯具代码/*** 返回学⽣名单以String 数组形式** @return*/public String[] initAssets() {try {//获取输⼊流InputStream inputStream = getAssets().open("list.txt"); //这⾥的名字是你的txt ⽂本⽂件名称//获取学⽣名单String str = getString(inputStream);//字符分割每⾏为⼀个学⽣String[] arr = str.split("\n");return arr;} catch (IOException e1) {e1.printStackTrace();}return null;}/*** 获取⽂件内容** @param inputStream* @return*/public static String getString(InputStream inputStream) {InputStreamReader inputStreamReader = null;try {inputStreamReader = new InputStreamReader(inputStream, "UTF-8");} catch (UnsupportedEncodingException e1) {e1.printStackTrace();}BufferedReader reader = new BufferedReader(inputStreamReader);//创建字符缓冲流StringBuffer sb = new StringBuffer("");String line;try {//读取每⾏学⽣while ((line = reader.readLine()) != null) {//添加到字符缓冲流中sb.append(line);//⼀条⼀⾏sb.append("\n");}} catch (IOException e) {e.printStackTrace();}//返回学⽣名单字符串return sb.toString();}4.如何使⽤(改成你想要的格式)//这⾥的list 每个元素⾥⾯放的就是⼀条数据String[] list = initAssets();//如下:System.out.print(list[0]);//输出结果如下: 1,20181233,张三//处理该条数据String[] msg = list[0].split(",");//存放修改过后的学⽣数据String person = "";for(String str : msg){ person += str + "\n"; // "\n" 为换⾏标识符}System.out.print(person);//打印结果如下/* 1* 20180123* 张三*/ 。
android之文本阅读器显示和阅读sd卡上的所有文本文件截图如下:目录结构ListAllFileActivity.java package com.example.txtreader;import java.io.File;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.os.Environment;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;public class ListAllFileActivity extends Activity {/*文件列表*/private List<File> fileNameList;private Bundle bundle;//展示SD卡中的所有文件@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_list_all_file);initializeFile();}private void initializeFile(){File path = Environment.getExternalStorageDirectory();File[] f = path.listFiles();putFile(f);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_list_all_file, menu);return true;}//读取SD卡中的所有的文件列表,并放到list中private void putFile(File[] f){fileNameList = new ArrayList();for(int i = 0; i < f.length; i++){if(isValid(f[i])){fileNameList.add(f[i]);}}ListView lv = (ListView) this.findViewById(R.id.fileList);ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, yout.simple_list_item_1, fileToStrArr(fileNameList));lv.setAdapter(adapter);OnItemClickListener listener = new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {Intent intent = new Intent(ListAllFileActivity.this,ViewFile.class);bundle = new Bundle();File file = fileNameList.get(position);if (file.isDirectory()) {File[] f = file.listFiles();putFile(f);} else {bundle.putString("fileName",file.getAbsolutePath());intent.putExtras(bundle);startActivityForResult(intent, 0);}}};lv.setOnItemClickListener(listener);}//检查时文件名或者目录private boolean isValid(File f){if(f.isDirectory()){return true;}if(f.getName().endsWith(".txt")){return true;}else{return false;}}private String[] fileToStrArr(List<File> fl){ArrayList<String> fnList = new ArrayList<String>();for (int i = 0; i < fl.size(); i++) {String nameString = fl.get(i).getName();fnList.add(nameString);}return fnList.toArray(new String[0]);}}MainActivity.javapackage com.example.txtreader;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Button openFile = (Button) this.findViewById(R.id.openFile);openFile.setOnClickListener(new OpenFileListener());}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}class OpenFileListener implements OnClickListener{@Overridepublic void onClick(View arg0) {Intent intent = new Intent(MainActivity.this, ListAllFileActivity.class);startActivityForResult(intent, 1);}}}ViewFile.javapackage com.example.txtreader;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.TextView;public class ViewFile extends Activity {private String filename;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_view_file);Bundle bundle = this.getIntent().getExtras();filename = bundle.getString("fileName");TextView lv = (TextView) this.findViewById(R.id.view_contents);String fileContent = getStringFromFile("UTF-8");lv.setText(fileContent);}private String getStringFromFile(String code){StringBuffer sb = new StringBuffer();try {FileInputStream in = new FileInputStream(filename);InputStreamReader is = new InputStreamReader(in, code);BufferedReader br = new BufferedReader(is);if(!new File(filename).exists()){return null;}else{while(br.ready()){sb.append(br.readLine()).append("\n");}br.close();return sb.toString();}} catch (FileNotFoundException e) {e.printStackTrace();}catch (UnsupportedEncodingException e) {e.printStackTrace();}catch (IOException e) {e.printStackTrace();}return null;}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_view_file, menu);return true;}}activity_list_all_file.xml<LinearLayoutxmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".ListAllFileActivity"><ListViewandroid:id="@+id/fileList"android:layout_width="fill_parent"android:layout_height="fill_parent"></ListView></LinearLayout>activity_main.xml<LinearLayoutxmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><Buttonandroid:id="@+id/openFile"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="点击浏览SD卡上的所有文件"/></LinearLayout>activity_view_file.xml<?xml version="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><ScrollView android:layout_width="fill_parent"android:layout_height="fill_parent"><TextView android:id="@+id/view_contents"android:layout_width="fill_parent"android:layout_height="fill_parent"android:textSize="18sp"></TextView></ScrollView></LinearLayout>当然不要忘了在AndroidManifest.xml配置activity。
android android读取资源文件的方法在Android开发中,读取资源文件是一项非常常见的任务。
Android提供了多种方法来实现这一功能,下面将介绍其中几种常用的方法。
1. 使用getResources()方法:通过调用Context类的getResources()方法,我们可以获取到该应用程序的资源对象,然后可以通过资源对象的方法读取各种类型的资源文件。
例如,要读取一个文本文件,可以使用openRawResource()方法,代码如下:```javaInputStream inputStream = getResources().openRawResource(R.raw.my_file);```2. 使用AssetManager类:Android中的assets文件夹可以存放各种资源文件,包括文本文件、图像文件等。
我们可以使用AssetManager类来读取assets文件夹中的资源文件。
首先,要获取到AssetManager对象,可以通过Context类的getAssets()方法来实现。
接着,可以使用AssetManager的方法打开并读取资源文件。
以下是一个示例代码:```javaAssetManager assetManager = getAssets();InputStream inputStream = assetManager.open("my_file.txt");```3. 使用FileInputStream类:如果资源文件存储在应用程序的私有目录或外部存储卡上,我们可以使用FileInputStream类来读取文件。
首先,需要获取到文件的路径,然后使用FileInputStream类打开并读取文件。
以下是一个示例代码:```javaString filePath = "/data/data/com.example.myapp/files/my_file.txt";FileInputStream fileInputStream = new FileInputStream(filePath);```以上是使用三种方法读取Android资源文件的简单示例。
Android读取⽂件内容实现⽅法总结Android 读取⽂件内容实现⽅法,这⾥整理了⼏种⽅法,⼤家需要可以看下。
如果要打开存放在/data/data/<package name>/files⽬录应⽤私有的⽂件,可以使⽤Activity提供openFileInput()⽅法。
FileInputStream inStream = this.getContext().openFileInput("itcast.txt"); Log.i("FileTest", readInStream(inStream)); readInStream()的⽅法请看本页下⾯备注。
或者直接使⽤⽂件的绝对路径:File file = new File("/data/data/cn.itcast.action/files/itcast.txt");FileInputStream inStream = new FileInputStream(file);Log.i("FileTest", readInStream(inStream));注意:上⾯⽂件路径中的“cn.itcast.action”为应⽤所在包,当你在编写代码时应替换为你⾃⼰应⽤使⽤的包。
对于私有⽂件只能被创建该⽂件的应⽤访问,如果希望⽂件能被其他应⽤读和写,可以在创建⽂件时,指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。
Activity还提供了getCacheDir()和getFilesDir()⽅法:getCacheDir()⽅法⽤于获取/data/data/<package name>/cache⽬录getFilesDir()⽅法⽤于获取/data/data/<package name>/files⽬录感谢阅读,希望能帮助到⼤家,谢谢⼤家对本站的⽀持!。
android⼿机SD卡读写操作(以txt⽂本为例)实现步骤要说明⼀下,我这⾥没有⽤MainActivity.class作为软件⼊⼝复制代码代码如下:AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="/apk/res/android"package="com.tes.textsd"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="16" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name="com.tes.textsd.FileOperateActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="UNCHER" /></intent-filter></activity></application></manifest>复制代码代码如下:FileHelper.java/*** @Title: FileHelper.java* @Package com.tes.textsd* @Description: TODO(⽤⼀句话描述该⽂件做什么)* @author Alex.Z* @date 2013-2-26 下午5:45:40* @version V1.0*/package com.tes.textsd;import java.io.DataOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import android.content.Context;import android.os.Environment;public class FileHelper {private Context context;/** SD卡是否存在**/private boolean hasSD = false;/** SD卡的路径**/private String SDPATH;/** 当前程序包的路径**/private String FILESPATH;public FileHelper(Context context) {this.context = context;hasSD = Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED);SDPATH = Environment.getExternalStorageDirectory().getPath(); FILESPATH = this.context.getFilesDir().getPath();}/*** 在SD卡上创建⽂件** @throws IOException*/public File createSDFile(String fileName) throws IOException { File file = new File(SDPATH + "//" + fileName);if (!file.exists()) {file.createNewFile();}return file;}/*** 删除SD卡上的⽂件** @param fileName*/public boolean deleteSDFile(String fileName) {File file = new File(SDPATH + "//" + fileName);if (file == null || !file.exists() || file.isDirectory())return false;return file.delete();}/*** 写⼊内容到SD卡中的txt⽂本中* str为内容*/public void writeSDFile(String str,String fileName){try {FileWriter fw = new FileWriter(SDPATH + "//" + fileName);File f = new File(SDPATH + "//" + fileName);fw.write(str);FileOutputStream os = new FileOutputStream(f); DataOutputStream out = new DataOutputStream(os);out.writeShort(2);out.writeUTF("");System.out.println(out);fw.flush();fw.close();System.out.println(fw);} catch (Exception e) {}}/*** 读取SD卡中⽂本⽂件** @param fileName* @return*/public String readSDFile(String fileName) {StringBuffer sb = new StringBuffer();File file = new File(SDPATH + "//" + fileName);try {FileInputStream fis = new FileInputStream(file);int c;while ((c = fis.read()) != -1) {sb.append((char) c);}fis.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return sb.toString();}public String getFILESPATH() {return FILESPATH;}public String getSDPATH() {return SDPATH;}public boolean hasSD() {return hasSD;}}复制代码代码如下:main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android" android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/hasSDTextView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="hello" /><TextViewandroid:id="@+id/SDPathTextView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="hello" /><TextViewandroid:id="@+id/FILESpathTextView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="hello" /><TextViewandroid:id="@+id/createFileTextView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="false" /><TextViewandroid:id="@+id/readFileTextView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="false" /><TextViewandroid:id="@+id/deleteFileTextView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="false" /></LinearLayout>复制代码代码如下:FileOperateActivity.class/*** @Title: FileOperateActivity.java* @Package com.tes.textsd* @Description: TODO(⽤⼀句话描述该⽂件做什么)* @author Alex.Z* @date 2013-2-26 下午5:47:28* @version V1.0*/package com.tes.textsd;import java.io.IOException;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class FileOperateActivity extends Activity {private TextView hasSDTextView;private TextView SDPathTextView;private TextView FILESpathTextView;private TextView createFileTextView;private TextView readFileTextView;private TextView deleteFileTextView;private FileHelper helper;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);hasSDTextView = (TextView) findViewById(R.id.hasSDTextView); SDPathTextView = (TextView) findViewById(R.id.SDPathTextView); FILESpathTextView = (TextView) findViewById(R.id.FILESpathTextView); createFileTextView = (TextView) findViewById(R.id.createFileTextView); readFileTextView = (TextView) findViewById(R.id.readFileTextView); deleteFileTextView = (TextView) findViewById(R.id.deleteFileTextView); helper = new FileHelper(getApplicationContext()); hasSDTextView.setText("SD卡是否存在:" + helper.hasSD()); SDPathTextView.setText("SD卡路径:" + helper.getSDPATH()); FILESpathTextView.setText("包路径:" + helper.getFILESPATH());try {createFileTextView.setText("创建⽂件:"+ helper.createSDFile("test.txt").getAbsolutePath());} catch (IOException e) {e.printStackTrace();}deleteFileTextView.setText("删除⽂件是否成功:"+ helper.deleteSDFile("xx.txt"));helper.writeSDFile("1213212", "test.txt");readFileTextView.setText("读取⽂件:" + helper.readSDFile("test.txt"));}}看看运⾏的效果:。
Android读取txt文本文档
一个可以读取txt文本文档的安卓demo
txt文档放在资源文件res/raw目录下,文档名称为a.txt
安卓项目的组织结构如图所示:
layout布局文件
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="/apk/res/android" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="147dp"
android:text="Button" />
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout>
</ScrollView>
</LinearLayout>
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, _TxtReaderDemoActivity!</string>
<string name="app_name">_TxtReaderDemo</string>
</resources>
Java文件(Class文件)
TxtReader.java
package com.android.txt;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
public class TxtReader {
/**
* 通过一个InputStream获取内容
*
* @param inputStream
* @return
*/
public static String getString(InputStream inputStream) {
InputStreamReader inputStreamReader = null;
try {
inputStreamReader = new InputStreamReader(inputStream, "gbk");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
BufferedReader reader = new BufferedReader(inputStreamReader);
StringBuffer sb = new StringBuffer("");
String line;
try {
while ((line = reader.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
/**
* 通过txt文件的路径获取其内容
*
* @param filepath
* @return
*/
public static String getString(String filepath) {
File file = new File(filepath);
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return getString(fileInputStream);
}
}
TxtReaderDemoActivity.java
package com.android.txt;
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 TxtReaderDemoActivity extends Activity {
Button button;
TextView textView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.main);
button = (Button) findViewById(R.id.button1);
textView = (TextView) findViewById(R.id.textView1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
InputStream inputStream = getResources().openRawResource(R.raw.a);
String string = TxtReader.getString(inputStream);
textView.setText(string);
}
});
}
}
运行效果:。