Android开发教程:数据存取之File浅析

Android系统中提供了一种文件读写的方法,可以将一些数据以文件的形式保存在设备中。比如一些word文档,PDF文档,图片,音频,视频文件等。

使用文件读写方法的步骤:

1.调用Context.openFileInput()方法获得Java文件输入流(FileInputStream)

2.调用Context.openFileOutput()方法获得java文件输出流(FileOutputStream)

3.使用Resources.openRawResource(R.raw.DataFile)方法返回InputStream

   下面的具体实例,在一个Activity里面创建两个EditText和两个Button,第一个EditText和Button将EditText的内容写到文件file.txt文件中。第二个EditText和Button将内容从文件file.txt中读取出来显示。文件被默认保存在/data/data/package/files下面。

Android开发教程:数据存取之File浅析

MainActivity.java

package com.android.file;   import java.io.FileInputStream;  import java.io.FileOutputStream;  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;   public class MainActivity extends Activity {      //声明文件名字符串常量      private static final String FILE_NAME="file.txt";      private Button writeBtn,readBtn;      private EditText writeText,readText;      @Override     public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.main);          writeBtn = (Button)findViewById(R.id.Button1);          readBtn = (Button)findViewById(R.id.Button2);                    writeText = (EditText)findViewById(R.id.EditText1);          readText = (EditText)findViewById(R.id.EditText2);                    writeBtn.setOnClickListener(new OnClickListener() {              @Override             public void onClick(View v) {                  //写内容                  write(writeText.getText().toString());              }          });                    readBtn.setOnClickListener(new OnClickListener() {              @Override             public void onClick(View v) {                  //读内容                  readText.setText(read());              }          });      }            private String read(){          try {              //实例化文件输入流对象              FileInputStream fis = openFileInput(FILE_NAME);              //定义缓存数组              byte[] buffer = new byte[fis.available()];              //读到缓冲区              fis.read(buffer);              return new String(buffer);          } catch (Exception e) {              e.printStackTrace();          }          return null;      }            private void write(String content){          try {              //实例化文件输出流              //openFileOutput(String name, int mode)              //第一个参数文件名              //第二个是模式               //MODE_APPEND表示要创建的文件存在则新写入的数据不会覆盖以前的数据。              FileOutputStream fos = openFileOutput(FILE_NAME, MODE_APPEND);              //写内容              fos.write(content.getBytes());              //关闭文件流              fos.close();          } catch (Exception e) {              e.printStackTrace();          }      }  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wydwff.html