将数据存储到文件中:
OpenFileOutput(文件名,文件的操作模式);
操作模式:
MODE_PRIVATE:文件同名的时候,写入的内容会覆盖原文件中的内容
MODE_APPEND:如果文件存在就往文件中添加内容,写入内容不会覆盖原文件内容
openFileOutput()方法返回的是一个FileOutputStream对象,得到了这个对象之后就可以使用Java流的方式将数据写入到文件中了.
通过openFileOutput()方法能够得到一个FileOutputStream对象,
然后再借助FileOutputStream构建出一个OutputStreamWriter对象,接着再使用OutputStreamWriter构建出一个BufferedWriter对象
这样就可以通过BufferedWriter来将文本内容写入到文件中了.
从文件中读取数据:
通过openFileInput()方法获取到了一个FileInputStream对象
然后借助FileInputStream又构建出了一个InputStreamReader对象,接着再使用InputStreamReader构建出一个BufferedReader对象
这样就可以通过BufferedReader进行一行行地读取
把文件中所有的文本内容全部读取出来并存放在一个StringBuilder对象中
最后将读取到的内容返回就可以了
package com.jia.filepersistencetest; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.text.TextUtils; import android.view.Menu; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { private EditText edit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edit = (EditText) findViewById(R.id.edit); String inputText = load(); if (!TextUtils.isEmpty(inputText)) { edit.setText(inputText); edit.setSelection(inputText.length()); Toast.makeText(this, "Restoring succeeded", Toast.LENGTH_LONG) .show(); } } @Override protected void onDestroy() { String inputText = edit.getText().toString(); save(inputText); super.onDestroy(); } public void save(String inputText) { // String data = "Data to save"; FileOutputStream out = null; BufferedWriter writer = null; try { out = openFileOutput("data", Context.MODE_PRIVATE);// 通过openFileOutput()方法能够得到一个FileOutputStream对象, writer = new BufferedWriter(new OutputStreamWriter(out));// 然后再借助FileOutputStream构建出一个OutputStreamWriter对象,接着再使用OutputStreamWriter构建出一个BufferedWriter对象 writer.write(inputText);// 这样就可以通过BufferedWriter来将文本内容写入到文件中了. } catch (Exception e) { e.printStackTrace(); } finally { try { if (writer != null) { writer.close(); } } catch (Exception e) { e.printStackTrace(); } } } public String load() { BufferedReader reader = null; StringBuilder content = new StringBuilder(); try { FileInputStream in = openFileInput("data");// 通过openFileInput()方法获取到了一个FileInputStream对象 reader = new BufferedReader(new InputStreamReader(in));// 然后借助FileInputStream又构建出了一个InputStreamReader对象,接着再使用InputStreamReader构建出一个BufferedReader对象 String line = ""; while ((line = reader.readLine()) != null) {// 这样就可以通过BufferedReader进行一行行地读取 content.append(line);// 把文件中所有的文本内容全部读取出来并存放在一个StringBuilder对象中 } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return content.toString();// 最后将读取到的内容返回就可以了 } }
时间: 2024-11-05 16:35:15