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();
}
}