文件存储详解

前端之家收集整理的这篇文章主要介绍了文件存储详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

将数据存储到文件中:

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

}
原文链接:https://www.f2er.com/xml/297285.html

猜你在找的XML相关文章