一天一点android知识(持久化技术——文件存储)
来源:互联网 发布:无限刷微信红包软件 编辑:程序博客网 时间:2024/06/01 10:23
数据持久化:将内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失。这里介绍第一种方式文件存储,这种方式是将数据原封不动地保存到文件当中去,其中重点用到了save和load函数(java又得重新梳理一下,好痛苦)。
MainActivity
package com.example.filepersistencetest;import android.content.Context;import android.support.v7.app.AppCompatActivity;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.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class MainActivity extends AppCompatActivity { 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_SHORT).show(); } } public 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 (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 inputText = edit.getText().toString(); save(inputText); } public void save(String inputText){ FileOutputStream out = null; BufferedWriter writer = null; try { out = openFileOutput("data", Context.MODE_PRIVATE); writer = new BufferedWriter(new OutputStreamWriter(out)); writer.write(inputText); } catch (IOException e){ e.printStackTrace(); }finally { try{ if(writer!=null){ writer.close(); } }catch (IOException e){ e.printStackTrace(); } } }}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:id="@+id/edit" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Type something here"/></LinearLayout>
0 0
- 一天一点android知识(持久化技术——文件存储)
- 一天一点Android知识(SharedPreferences存储)
- Android持久化技术——文件存储
- River的Android的学习笔记——数据持久化技术(文件存储)
- 一天一点Android知识(SQLite数据库存储)
- 一天一点Android知识(SQLite数据库存储2)
- android--持久化技术之文件存储
- Android--持久化技术之文件存储
- Android持久化技术之文件存储
- Android之数据持久化技术一(文件存储)
- android 持久化技术(一)文件存储
- 一天一点Android知识
- Android之数据存储——持久化技术
- Android--持久化技术之文件存储-数据读取
- 一天一点android知识(Broadcast)
- Android持久化存储----文件
- River的Android学习笔记——数据持久化技术(SharedPreference存储)
- 一天一点Android技术(LitePal)
- linux下编译c源码configure,make,make install等
- LeetCode-Hash-463. Island Perimeter
- 谷哥的小弟学前端(06)——CSS基础知识(4)
- 安卓通讯之《蓝牙与单片机通讯助手》①理清思路,准备工作。
- Full Disk Encryption(FDE)全盘加密开关
- 一天一点android知识(持久化技术——文件存储)
- qt绘图
- Python调用PYNIPIR(ICTCLAS)进行中文分词
- Unity编译Android的原理解析和apk打包分析
- 【leetcode】【Easy】【344. Reverse String】【string】【two pointers】
- linux test 用法
- Region Proposal Network
- Sqlite数据库的用法
- Android利用有道API播放英文发音