简书的文章编辑功能和印象笔记无法比,刚已经发布成功的文章莫名没有了,看来得重新找地方。
昨天准备写个小游戏,发现功力不足,继续充电补充内力。
Android数据存储:
-
文件存储
-
SharedPreferences
-
SQLite数据库存储
-
ContentProvider
一、文件存储
默认存储路径:/data/data/<PackageName>/files
文件操作模式:MODE_PRIVATE(默认):覆盖、MODE_APPEND:追加// 文件存储 public void save(View view){ data = editText.getText().toString(); try { FileOutputStream fileOutputStream = openFileOutput(file,MODE_APPEND); fileOutputStream.write(data.getBytes()); fileOutputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } // 文件读取 public void read(View view){ try { FileInputStream fileInputStream = openFileInput(file); int c; String temp=""; while((c = fileInputStream.read())!=-1){ temp = temp + Character.toString((char)c); } editText.setText(temp); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
二、SharedPreferences
默认存储路径:/data/data/<PackageName>/shared_prefs
操作模式:MODE_PRIVATE(默认):只有当前的应用程序才能对文件进行读写MODE_MULTI_PROCESS:用于多个进程对同一个SharedPreferences进行读写。
存储数据格式:键值对
获取SharedPreferences对象的方法
-
Context的getSharedPreferences()方法,参数一是文件名,参数二是操作模式
-
Activity的getPreferences()方法,参数为操作模式,使用当前应用程序包名为文件名
-
PreferenceManager的getDefaultSharedPreferences()静态方法,接收Context参数,使用当前应用程序包名为文件名
存储数据
-
调用SharedPreferences对象的edit()方法获取一个SharedPreferences.Editor对象
-
向Editor对象中添加数据putBoolean、putString等
-
调用commit()方法提交数据
// sharedPreferences 存储 public void ShareStroage(View view){ // 提交数据 SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit(); editor.putString("name","zhangsan"); editor.putInt("age",12); editor.putBoolean("isMarried",false); editor.commit(); // 从SharedPreferences中读取数据 SharedPreferences preferences = getSharedPreferences("data",MODE_PRIVATE); String name = preferences.getString("name","who"); int age = preferences.getInt("age",1); boolean isMarried = preferences.getBoolean("isMarrid",false); Toast.makeText(getApplicationContext(),name+age+isMarried,Toast.LENGTH_LONG).show(); }
三、SQLite数据库存储
默认存储路径:/data/data/<PackageName>/databases
支持的数据类型:
- Integer 整型
- real 浮点型
- text 文本型
- blob 二进制类型
具体看自己的DataStorage.加油
网友评论