SharePreference通过键值对的形式保存简单、私有的数据
/***
* 内部存储
* 该方法会在手机的私有内存中创建一个文件夹,名称为shared_prefs,里面会生成xml文件自动生成键值对
* getSharedPreferences方法可以生成指定的xml文件命名
* getPreferences生成以当前Activity的为名称的XML文档
* 通常选用的模式都是MODE_PRIVATE
*/
public void PreferenceWrite() {
SharedPreferences preferences=getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor=preferences.edit();
editor.putString("edittext_input",mEditText.getText().toString());
editor.commit();
}
public void PreferenceRead() {
SharedPreferences preferences=getPreferences(MODE_PRIVATE);
String content=preferences.getString("edittext_input","我是默认值");
mTextView.setText(content);
}
内部存储是把私有数据存储到内部存储设备上
/***
* 该方法回在内部存储中file文件夹下创建一个名为helloCache的文件,用存放数据
*/
public void WriteCache() {
try {
FileOutputStream outputStream=openFileOutput("helloCache",MODE_PRIVATE);
PrintWriter writer=new PrintWriter(new OutputStreamWriter(outputStream));
writer.write("你好,我是缓存");
writer.flush();
writer.close();
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/***
* 该方法用于提取在file文件夹下名为helloCache的文件内容
*/
public void ReadCache() {
try {
FileInputStream is=openFileInput("helloCache");
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String line=br.readLine();
while (line!=null){
Log.d("readline", "" + line);
line=br.readLine();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/***
*该方法会在内部存储中创建一个Cache文件夹下创建一个名为hellworld的txt文件
* 然后向该txt中写入内容
*/
public void WriteCacheDir() {
File file=new File(getCacheDir(),"helloworld.txt");
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
FileOutputStream outputStream=new FileOutputStream(file);
PrintWriter writer=new PrintWriter(new OutputStreamWriter(outputStream));
writer.write("你好,我是内部存储");
writer.flush();
writer.close();
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
外部存储把公有的数据存放到共享的外部存储介质中去
/***
* 首先需要在Manifest中获得权限
* <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
*<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
* 通过Environment.getExternalStorageDirectory().getAbsolutePath()方法获得外部存储的路径,在该路径下创建名为
* helloworld的txt文件然后向里面写入一些内容
*/
public void WriteSdCard() {
File file=new File(Environment.getExternalStorageDirectory().getAbsolutePath(),"helloworld.txt");
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
FileOutputStream outputStream=new FileOutputStream(file);
PrintWriter writer=new PrintWriter(new OutputStreamWriter(outputStream));
writer.write("你好,本地存储");
writer.flush();
writer.close();
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}