首页 > 系统 > Android > 正文

讲解Android应用程序中读写txt文本文件的基本方法

2020-02-21 17:29:11
字体:
来源:转载
供稿:网友

文本文件的读写操作通常在Android平台上使用,Java虚拟机的FrieWrror类可用于处理Android平台上的文本MIME文件,本文是武林技术频道小编为大家带来的讲解Android应用程序中读写txt文本文件的基本方法,一起来学习吧!

2016412163511854.gif (370×345)

最终效果图,点击save会保存到文件中,点击show会从文件中读取出内容并显示。

2016412163541130.gif (235×373)

main.xml

<?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"   > <TextView    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="请您输入要保存的内容:"   />  <EditText   android:id="@+id/addText"   android:layout_width="fill_parent"    android:layout_height="wrap_content"   android:hint="请您在此处输入文件内容!"  />    <Button    android:id="@+id/addButton"   android:layout_width="wrap_content"    android:layout_height="wrap_content"   android:text="save"  />  <Button   android:id="@+id/showButton"   android:layout_width="wrap_content"    android:layout_height="wrap_content"   android:text="show"  />  <TextView   android:id="@+id/showText"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    />   </LinearLayout> 

activity代码

package cn.com.file;  import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;  import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast;  public class FileTest extends Activity {   private EditText editText;   private TextView showTextView;   // 要保存的文件名   private String fileName = "chenzheng_java.txt";    @Override   public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);     // 获取页面中的组件     editText = (EditText) findViewById(R.id.addText);     showTextView = (TextView) findViewById(R.id.showText);     Button addButton = (Button) this.findViewById(R.id.addButton);     Button showButton = (Button) this.findViewById(R.id.showButton);     // 绑定单击事件     addButton.setOnClickListener(listener);     showButton.setOnClickListener(listener);    }    // 声明监听器   private View.OnClickListener listener = new OnClickListener() {     public void onClick(View v) {       Button view = (Button) v;       switch (view.getId()) {       case R.id.addButton:         save();         break;       case R.id.showButton:         read();         break;        }      }    };    /**    *@author chenzheng_Java    *保存用户输入的内容到文件    */   private void save() {      String content = editText.getText().toString();     try {       /* 根据用户提供的文件名,以及文件的应用模式,打开一个输出流.文件不存系统会为你创建一个的,        * 至于为什么这个地方还有FileNotFoundException抛出,我也比较纳闷。在Context中是这样定义的        *  public abstract FileOutputStream openFileOutput(String name, int mode)        *  throws FileNotFoundException;        * openFileOutput(String name, int mode);        * 第一个参数,代表文件名称,注意这里的文件名称不能包括任何的/或者/这种分隔符,只能是文件名        *     该文件会被保存在/data/data/应用名称/files/chenzheng_java.txt        * 第二个参数,代表文件的操作模式        *     MODE_PRIVATE 私有(只能创建它的应用访问) 重复写入时会文件覆盖        *     MODE_APPEND 私有  重复写入时会在文件的末尾进行追加,而不是覆盖掉原来的文件        *     MODE_WORLD_READABLE 公用 可读        *     MODE_WORLD_WRITEABLE 公用 可读写        * */       FileOutputStream outputStream = openFileOutput(fileName,           Activity.MODE_PRIVATE);       outputStream.write(content.getBytes());       outputStream.flush();       outputStream.close();       Toast.makeText(FileTest.this, "保存成功", Toast.LENGTH_LONG).show();     } catch (FileNotFoundException e) {       e.printStackTrace();     } catch (IOException e) {       e.printStackTrace();     }    }    /**    * @author chenzheng_java    * 读取刚才用户保存的内容    */   private void read() {     try {       FileInputStream inputStream = this.openFileInput(fileName);       byte[] bytes = new byte[1024];       ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();       while (inputStream.read(bytes) != -1) {         arrayOutputStream.write(bytes, 0, bytes.length);       }       inputStream.close();       arrayOutputStream.close();       String content = new String(arrayOutputStream.toByteArray());       showTextView.setText(content);      } catch (FileNotFoundException e) {       e.printStackTrace();     } catch (IOException e) {       e.printStackTrace();     }    }  } 

其他的都为默认。

关于文件保存的路径可以通过ADT携带的File Explorer工具进行查看。如何调出File Explorer工具呢;我们可以通过Windows--showView--others-android下面看到File Explorer。这里是我的一个截图。

2016412163634268.gif (776×235)

对于本文介绍的讲解Android应用程序中读写txt文本文件的基本方法,基本上没有困难,也就是Java流的纯知识。唯一的区别是上下文为我们提供了两种获取输入和输出流的方法。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表