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

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

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。这里是我的一个截图。

对于这个程序,基本上没什么难点,就是纯粹的java流知识。唯一不同的就是context为我们提供了两个方法来获取输入输出流。简单、方便、快捷啊。

昨晚多几分钟的准备,今天少几小时的麻烦。

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

相关文章:

你感兴趣的文章:

标签云: