1. 云栖社区>
  2. >
  3. 正文

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

作者:用户 来源:互联网 时间:2016-04-12 12:31:58

android安卓文件txt文本读写

Android应用程序中读写txt文本文件的基本方法讲解_Android - 摘要: 本文讲的是Android应用程序中读写txt文本文件的基本方法讲解_Android, 最终效果图,点击save会保存到文件中,点击show会从文件中读取出内容并显示。 main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xm

2016412163511854.gif

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

2016412163541130.gif

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

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

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android , 安卓 , 文件 , txt , 文本 读写 android 文本文件读写、c 文本文件读写、文件读写的基本类、java文本文件读写、c语言文本文件读写,以便于您获取更多的相关知识。

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

云服务器9.9元/月,大学必备