使用文件讀寫方法的步驟:
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下面。
650) this.width=650;" height=137>
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();
- }
- }
- }