Android持久化技术
- 文件存储
- 将数据存储到文件中
- 从文件中读取数据
- SharedPreferences存储
- 将数据存储到SharedPreferences中
- 步骤
- 从SharedPreferences中读取数据
- 步骤
- 将数据存储到SharedPreferences中
- 实例:用SharedPreferences实现记住密码功能
瞬时数据是指存储在内存中的数据。持久化技术可以将内存中的数据和持久状态(保存在存储设备上)之间相互转化。
Android提供了三种持久化方式
文件存储
文件存储不对存储内容进行任何的格式化处理,所有数据都是原封不动保存到文件当中。
将数据存储到文件中
Context类中提供了一个openFileOutput()方法,返回一个FileOutputStream对象,然后就可以用javaI/O流去写文件中了。文件都默认放在/data/data//files/目录下。
public void save(String data){FileOutputStream out=null;BufferedWriter writer=null;try{out=openFileOutput("data", Context.MODE_PRIVATE);//第一个参数是文件的名称,第二个参数是模式。MODE_PRIVATE表示覆盖,MODE_APPEND表示追加。writer=new BufferedWriter(new OutputStreamWriter(out));writer.write(data);}catch (IOException e){e.printStackTrace();}finally {try {if(writer!=null)writer.close();}catch (IOException e){e.printStackTrace();}}}
从文件中读取数据
Context类还提供了一个openFileInput(),返回的是一个FileInputStream。它接收一个参数,即要读取的文件名。然后系统会去/data/data//files/目录下寻找。
public String load(String name){FileInputStream input=null;BufferedReader reader=null;StringBuilder content=new StringBuilder();try {input=openFileInput(name);reader=new BufferedReader(new InputStreamReader(input));String line="";while((line=reader.readLine())!=null){content.append(line);}}catch (IOException e){e.printStackTrace();}finally {try {if(reader!=null)reader.close();}catch (IOException e){e.printStackTrace();}}return content.toString();}
SharedPreferences存储
SharedPreferences是使用键值对的方式来存储数据的
将数据存储到SharedPreferences中
步骤
1.获取SharedPreferences对象
- Context类中的getSharedPreferences()方法
此方法接收两个参数,第一个参数用于指定SharedPreferences文件的名称,如果直接的名称文件不存在,则会创建一个文件,SharedPreferences文件都是存放在/data/data//shared_prefs/目录下。第二个参数用于指定操作模式,目前只有MODE_WORLD_READABLE这一种模式可选,它是默认的操作模式,和直接传入0效果是相同的,表示只有当前的应用才可以对这个文件进行读写.
- Activity类中的getPreferences()方法
只接收一个操作模式参数,因为自动将当前活动的类名当作SharedPreferences的文件名
- PreferenceManager类中的getDefaultSharedPreferences()方法
这是一个静态方法,它接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件。
2.向SharedPreferences中存储数据
(1)调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象
(2)向SharedPreferences.Editor对象中添加数据,比如添加一个布尔型数据就使用putboolean()方法等
(3)调用apply()方法将添加的数据提交,从而完成数据存储操作
从SharedPreferences中读取数据
步骤
1.获取SharedPreferences对象
2.从SharedPreferences中读取数据
直接使用SharedPreferences对象的getxxx(键,默认值)方法获取对应类型值
实例:用SharedPreferences实现记住密码功能
1.新建LoginActivity活动
布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="60dp"><TextViewandroid:layout_width="90dp"android:layout_height="wrap_content"android:text="Account:"android:textSize="18dp"android:layout_gravity="center"/><EditTextandroid:id="@+id/account"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:layout_gravity="center_vertical"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="60dp"><TextViewandroid:layout_width="90dp"android:layout_height="wrap_content"android:text="Password:"android:textSize="18dp"android:layout_gravity="center_vertical"/><EditTextandroid:id="@+id/password"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:inputType="textPassword"android:layout_gravity="center_vertical"/></LinearLayout><CheckBoxandroid:id="@+id/remeber"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="remember password"/><Buttonandroid:id="@+id/login"android:layout_gravity="center"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Login"/></LinearLayout>
LoginActivity类:
ublic class LoginActivity extends AppCompatActivity {private SharedPreferences sharedPreferences;private SharedPreferences.Editor editor;private EditText account;private EditText password;private CheckBox isRemeber;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);sharedPreferences= PreferenceManager.getDefaultSharedPreferences(this);account=(EditText)findViewById(R.id.account);password=(EditText)findViewById(R.id.password);isRemeber=(CheckBox)findViewById(R.id.remeber);if(sharedPreferences.getBoolean("isRemeber",false)){//之前记住过密码account.setText(sharedPreferences.getString("account",""));password.setText(sharedPreferences.getString("password",""));isRemeber.setChecked(true);}Button button=(Button)findViewById(R.id.login);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String accountstr=account.getText().toString();String passwordstr=password.getText().toString();if(accountstr.equals("admin")&&passwordstr.equals("123456")) {editor=sharedPreferences.edit();if (isRemeber.isChecked()) {//选择记住密码editor.putBoolean("isRemeber",true);editor.putString("account", accountstr);//保存账户editor.putString("password", passwordstr);//保存密码}else{editor.clear();//如果没选中说明清空}editor.apply();//运行Intent intent=new Intent(LoginActivity.this,MainActivity.class);startActivity(intent);finish();}else{Toast.makeText(LoginActivity.this,"account or password is invald",Toast.LENGTH_SHORT).show();}}});}
}
Android持久化技术相关推荐
- Android第一行代码学习思考笔记(碎片、广播、持久化技术和Android数据库)
Android第一行代码学习思考笔记(碎片.广播.持久化技术和Android数据库 第四章 手机平板要兼顾--探究碎片 4.1碎片是什么(Fragment) 4.2碎片的使用方式 4.2.1碎片的简单 ...
- Android数据持久化技术
Android 数据持久化技术 数据持久化 文件存储 将数据存储到文件中 从文件中读取数据 SharedPreferences存储 使用SharedPreferences存储数据 从SharedPre ...
- Android数据存储全方案——持久化技术
数据持久化就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失.保存在内存中的数据是处于瞬时状态的,而保存在存储设备 中的数据是处于持久状态的,持久化技 ...
- Android之数据持久化技术
一.数据持久化技术概述 1.数据持久化:指将那些内存中的瞬时数据保存到存储设备当中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失. 2.持久化技术提供了一种机制可以让数据在瞬时状态和持久状态 ...
- Android学习笔记(6)——详解持久化技术
第六章 数据存储权方案--详解持久化技术 6.1 持久化技术简介 概述:Android 系统中主要提供了3种方式用于简单地实现数据持久化功能,即文件存储.SharedPreference存储以及数据库 ...
- 第一行代码学习笔记第六章——详解持久化技术
知识点目录 6.1 持久化技术简介 6.2 文件存储 * 6.2.1 将数据存储到文件中 * 6.2.2 从文件中读取数据 6.3 SharedPreferences存储 * 6.3.1 将数据存储到 ...
- 第6章 数据存储全方案,详解持久化技术
所有的App都可以说是与数据打交道的,离开数据它们什么都不是.那么平时我们怎么存储一些关键的数据呢? 1 持久化技术简介 数据持久化就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关 ...
- 安卓学习之持久化技术(数据库操作)
1.持久化技术简介 让数据在瞬时状态和持久化状态进行转换的机制. 主要包括文件存储.shareOreference存储以及数据库存储. 2.文件存储 1.将数据存储到文件中 Context 类中提供了 ...
- 第二行代码学习笔记——第六章:数据储存全方案——详解持久化技术
本章要点 任何一个应用程序,总是不停的和数据打交道. 瞬时数据:指储存在内存当中,有可能因为程序关闭或其他原因导致内存被回收而丢失的数据. 数据持久化技术,为了解决关键性数据的丢失. 6.1 持久化技 ...
- 7_数据存储持久化技术
持久化技术 持久化技术就是将那些在内存中的瞬时数据存储到存储设备中,使其成为持久数据 文件存储 SharedPregerences存储 数据库存储 文件存储 数据存储到文件中 Context类中提供了 ...
最新文章
- JAVA中怎么设置文本域位置_java – 如何在JTextArea中更改文本的位置
- 用OpenJTAG烧写程序到Flash—— 韦东山嵌入式Linux视频学习笔记03
- MVC5网站部署到IIS7
- Val编程-系统架构
- 配色方案专辑上线,宠溺设计师的好素材!
- 修改linux默认语言
- zTree实现地市县三级级联报错(一)
- 大数据对医学发展有什么影响
- mac更新完后读取不出移动硬盘的问题解决
- 2021级南航计算机专硕829备考记录
- 2020年第六届 美亚杯电子取证 团体赛 wp
- Springboot毕设项目会议预约系统设计与实现3if68(java+VUE+Mybatis+Maven+Mysql)
- 3D打印:FDM打印湿度对打印件及打印机的影响和调整
- qtabwidget设置表头_QTableWidget添加表头菜单 并 可以通过表头菜单隐藏选中列
- Eureka Client启动后就关闭 Unregistering application xxx with eureka with status DOWN
- MNE-Python | 开源生理信号分析神器(一)
- 将CAD图纸转换为黑白的PDF文件要怎么操作
- 项目实战4——uniapp在线升级关联云空间
- Qt5.13.0虚拟键盘 使用文档说明及函数说明 (一)构建 build
- HTTP常见返回码(如:301,400,503)
热门文章
- 服务端开发所需技能归纳
- mac osx 系统 brew install hadoop 安装指南
- IE浏览器中发送到onenote的选项没有调出来??
- 正太分布几个简单证明
- 充分统计量(Sufficient Statistics)
- 拓端tecdat|R语言样条曲线、分段线性回归模型piecewise regression估计个股beta值分析收益率数据
- 拓端tecdat|Python用ARIMA和SARIMA模型预测销量时间序列数据
- 拓端tecdat|R语言在RCT中调整基线时对错误指定的稳健性
- java文件字节流和文件字符流的使用
- php图片发送另一台,PHP从一台服务器将图片发送到另一台服务器并保存