Android学习笔记之数据持久化
16lz
2021-01-26
- 文件存储
activity_mian.xml
<?xml version="1.0" encoding="utf-8"?>
修改MainActivity
package com.syc.androidlearning;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;import android.os.Bundle;import android.text.TextUtils;import android.widget.EditText;import android.widget.Toast;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;public class MainActivity extends AppCompatActivity { private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = findViewById(R.id.edit); String inputText = load(); if (!TextUtils.isEmpty(inputText)){ editText.setText(inputText); Toast.makeText(this,"restoring succeed",Toast.LENGTH_SHORT).show(); } } private String load() { FileInputStream in = null; BufferedReader reader = null; StringBuilder content = new StringBuilder(); try { in = openFileInput("data"); reader = new BufferedReader(new InputStreamReader(in)); String line = ""; while ((line = reader.readLine()) != null) { content.append(line); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null){ try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return content.toString(); } @Override protected void onDestroy() { super.onDestroy(); String input = editText.getText().toString(); save(input); } public void save(String input) { FileOutputStream outputStream = null; BufferedWriter writer = null; try { outputStream = openFileOutput("data", Context.MODE_PRIVATE); writer = new BufferedWriter(new OutputStreamWriter(outputStream)); writer.write(input); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (writer != null) { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } }}
- SharedPreference存储
SharedPreference使用键值对存储数据,他比文件存储更加简单。
修改activity_mian.xml
<?xml version="1.0" encoding="utf-8"?>
修改ActivityMain文件
package com.syc.androidlearning;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;import android.content.SharedPreferences;import android.os.Bundle;import android.text.TextUtils;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;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;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button saveData = findViewById(R.id.save); Button restoreData = findViewById(R.id.restore); saveData.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit(); editor.putString("name", "SYC"); editor.putInt("age", 24); editor.apply(); } }); restoreData.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SharedPreferences preferences = getSharedPreferences("data", MODE_PRIVATE); String name = preferences.getString("name", ""); int age = preferences.getInt("age", 0); Log.d("MainActivity", "name is " + name + "age is " + age); } }); }}
更多相关文章
- 一句话锁定MySQL数据占用元凶
- 自定义Android(安卓)ORM 框架greenDAO数据库文件的路径
- 滴滴插件化框架学习笔记之virtualapk-gradle-plugin
- 监听BatteryManager.EXTRA_PLUGGED无效的修改
- Java读写二进制文件操作
- Android手势操作(一)
- Android(安卓)菜单 使用XML
- Android(安卓)第三方开源:Volley通过网络下载数据
- Android(安卓)Auto-IP support