39-安卓数据存储File

package com.example.test_of_file2;

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {
	private EditText editText;
	private Button button1, button2;
	private TextView textView;
	public static final String FILENAME = "test.txt";
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 获取界面控件
		findView();
		// 保存监听
		button1.setOnClickListener(saveListener);
		// 读取监听
		button2.setOnClickListener(readListener);
	}

	// 获取界面控件的方法
	public void findView() {
		editText = (EditText) findViewById(R.id.editText1);
		button1 = (Button) findViewById(R.id.button1);
		button2 = (Button) findViewById(R.id.button2);
		textView = (TextView) findViewById(R.id.textView1);
	}

	// 保存监听事件
	OnClickListener saveListener= new OnClickListener() {

		public void onClick(View v) {
			writeFile(editText.getText().toString());
			textView.setText(readFile());
		}
	};

	// 读取监听事件
	OnClickListener readListener = new OnClickListener() {

		public void onClick(View v) {
			textView.setText(readFile());
		}
	};

	// 写文件
	public void writeFile(String content) {
		try {
			// 打开流
			FileOutputStream outputStream = openFileOutput(FILENAME,
					Context.MODE_PRIVATE);
			// 进行写操作
			outputStream.write(content.getBytes());
			// 关闭流
			outputStream.close();
		} catch (Exception e) {
			// 将错误打印在控制台上
			e.printStackTrace();
		}
	}

	// 读文件
	public String readFile() {

		String content = null;
		try {
			// 打开流
			FileInputStream fileInputStream = openFileInput(FILENAME);
			// 读取
			ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
			byte[] buffer = new byte[1024];
			int len = 0;
			//将输入流中的数据读到buffer数组中
			while ((len=fileInputStream.read(buffer))!= -1) {
				//将len个字节的数据写入到buffer数组中
				byteArrayOutputStream.write(buffer, 0, len);
			}
			//将缓冲区的内容转换为字符串
			content = byteArrayOutputStream.toString();
			// 关闭流
			byteArrayOutputStream.close();
			fileInputStream.close();
		} catch (Exception e) {
			e.printStackTrace();
		}

		return content;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会编程的阿强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值