文件存储详解

来源:互联网 发布:星盘哪些数据最重要 编辑:程序博客网 时间:2024/06/05 22:04

将数据存储到文件中:

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;@Overrideprotected 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();}}@Overrideprotected 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 blocke.printStackTrace();} finally {if (reader != null) {try {reader.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}return content.toString();// 最后将读取到的内容返回就可以了}}


1 1
原创粉丝点击