Android—数据存储方式(一)
来源:互联网 发布:织梦cms和wordpress 编辑:程序博客网 时间:2024/06/05 04:15
Android中的数据存储方式
1、文件存储
思维导图:
文件存储是 Android 中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,所有数据都是原封不动的保存到文件当中的。它比较适合用于存储一些简单的文本数据或二进制数据。如果你想使用文件存储方式来保存一些较为复杂的文本数据,就需要定义一套自己的格式规范,方便于之后将文件重新解析出来。
注意:在进行手机读写的时候需要注意一下几点
①、判读手机内存卡是否可用
//获取手机内存卡路径 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ sdCard = Environment.getExternalStorageDirectory().getAbsolutePath(); }
②、在AndroidManifest.xml 取得权限
<!-- 内存卡的读写权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
①可以使用Android Content类中自带的openFileOutput()方法写入数据, openFileInput()方法读取数据
openFileOutput这个方法自带两个参数:
第一个参数是文件创建时使用的名称,名称只是名字不能带有路径,因为所有文件都是默 认存储到/data/data/<包名>/files/ 目录下的。
第二个参数是文件的操作模式,主要有两种模式可以选择, MODE_PRIVATE(覆盖原文) 和 MODE_APPEND(追加内容) 。
openFileOutput() 方法返回的是一个 FileOutputStream 对象,得到这个对象之后就可以使用 Java 流的方式将数据写入到文件中了。
openFileInput()方法只接收一个参数,即要读取的文件名,然后系统会自动到 /data/data/<包名>/files/ 目录下去加载这个文件,并返回一个 FileInputStream 对象。
代码:
写
public void write(View view){ String first=write_baozi.getText().toString(); //写的内容 String fileName=write_name.getText().toString(); //文件的名字 try { //设置文件名字,已经存储方式 FileOutputStream fos= openFileOutput(fileName, Context.MODE_PRIVATE); //向文件中写入数据 fos.write(first.getBytes()); fos.close();//关闭流 Toast.makeText(this, "保存成绩!", Toast.LENGTH_SHORT).show();//提示 } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
读
public void read(View view){ String fileName=write_name.getText().toString(); try { //设置要打开的存储文件的名字 FileInputStream fis=openFileInput(fileName); byte bt[]=new byte[1024]; int len=0; StringBuffer sb=new StringBuffer(); while((len=fis.read(bt))!=-1){ sb.append(new String(bt,0,len)); } read_baozi.setText(sb); fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
②可以使用和Java一样读写文件
Java的写
public void write(View view){ String first=write_baozi.getText().toString(); //写的内容 String fileName=write_name.getText().toString(); //文件的名字 try { //sdCard手机内存卡路径 FileOutputStream fos=new FileOutputStream(sdCard+"/"+fileName); fos.write(first.getBytes()); fos.close(); Toast.makeText(this, "保存成绩!", Toast.LENGTH_SHORT).show(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
Java的读
public void read(View view){ String fileName=write_name.getText().toString(); try { //sdCard 内存卡路径 FileInputStream fis=new FileInputStream(sdCard+"/"+fileName); byte bt[]=new byte[1024]; int len=0; StringBuffer sb=new StringBuffer(); while((len=fis.read(bt))!=-1){ sb.append(new String(bt,0,len)); } read_baozi.setText(sb); fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
2、sharedPreference存储数据(可实现记住密码、自动登录)
思维导图:
代码:
package com.example.myapplication;import android.content.Context;import android.content.SharedPreferences;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class LoginActivity extends AppCompatActivity { private EditText euname; private EditText eupass; private SharedPreferences sp; private SharedPreferences.Editor editor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); euname = (EditText) findViewById(R.id.uname); eupass = (EditText) findViewById(R.id.upass); sp = getSharedPreferences("loginInfo", Context.MODE_PRIVATE); editor = sp.edit(); String uname=sp.getString("uname",""); String upass=sp.getString("upass",""); euname.setText(uname); eupass.setText(upass); } public void login(View view){ String uname=euname.getText().toString(); String upass=eupass.getText().toString(); Toast.makeText(this, "跳转页面", Toast.LENGTH_SHORT).show(); editor.putString("uname",uname); editor.putString("upass",upass); //细节: editor.commit(); }}
效果:
第一次 第二次
- Android—数据存储方式(一)
- Android数据存储方式(一)文件
- Android数据存储方式(一)文件
- Android中数据存储方式(一)
- android数据存储方式(一)
- Android数据存储方式(一)文件
- Android数据的存储方式(一) —— 总览
- 关于Android数据存储方式(一)——SharedPreferences
- 关于Android开发数据存储的方式(一)
- Android数据存储方式(一)文件读写操作
- Android中数据的存储方式(一)
- Android开发-数据存储方式一
- Android数据存储(一)
- Android数据存储(一)
- Android 数据存储方式
- android数据存储方式
- Android:数据存储方式
- Android数据存储方式
- 【51Nod】1106 质数检测
- 【HTML5学习笔记】18:CSS颜色和度量单位
- 服务器反向代理中用于存放客户端原始 IP 地址
- Qt之界面数据存储与获取(使用setUserData()和userData())
- 复数类实现
- Android—数据存储方式(一)
- JAVASE基础(三)
- block用copy修饰,delegate 用weak修饰,
- Mybatis的<where><foreach><set>等标签详解
- 使ListView与GridView无滚动效果,使其能与ScrollView兼容
- mysql安装
- (1-1)Unity3D/2D:创建Sprite游戏对象
- python数据处理
- Golang template简单实现分页