文件存储详解

将数据存储到文件中:

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();// 最后将读取到的内容返回就可以了
	}

}


你可能感兴趣的:(xml,gson,base64,sax,Class,webView)