SharedPreferences存储
1.创建sharedPreferences对象调用getSharedPreferences()函数
2.实例化SharedPreferences.Editor对象。
3.输入键值对
4.确认。
程序启动时,想要初始化数据,应重载onStart()函数。
代码:
保存
//为了方便,自成一函数
public void savingSharedPreferences() {
SharedPreferences preferences = getSharedPreferences("people",
MODE_WORLD_READABLE + MODE_WORLD_WRITEABLE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("name", "小强");
editor.commit();
}
获取
public void loadingSharedPreferences() {
SharedPreferences preferences = getSharedPreferences("people",
MODE_WORLD_READABLE);
String msgString = preferences.getString("name", null);
view.setText(msgString);
}
内部存储
存:
1.创建FileOutStream 对象获取openFileOutput()函数
2.写入数据。
取
1.创建FileInStream对象获取openFileOutput()函数
2.定义一比特字节流byte[] reader=new byte[fis.available]
3.while(fis.read(reader))判断是否读取完毕,创建String对象来保存数据。
public void SavinginStore() {
String string1 = "this is a test \n and is another";
try {
FileOutputStream fos = openFileOutput("people.txt",
MODE_WORLD_READABLE + MODE_WORLD_WRITEABLE);//注意权限,第二个参数、
fos.write(string1.getBytes()); //需要将String变量转换为btye类型
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void loadinginStore() {
try {
FileInputStream fis = openFileInput("people.txt");
byte[] reader = new byte[fis.available()];
String msgString = null;
while (fis.read(reader) != -1) {
msgString = new String(reader);
}
view.setText(msgString);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
外部存储
外部存储跟内部存储差不多(个人觉得),只是在创建FileInStream和FileOutStream对象时有些不同,而且有时需要判断外部存储卡是否存在可写(还没有体会此好处)。
关键的是外部存储需要获取写入权限。在AndroidManifast.xml中申请。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
代码(FILENAME为一String变量,myData也是String变量)
public void savingoutStore() {
try {
FileOutputStream fos = new FileOutputStream(
Environment.getExternalStorageDirectory() + "/" + FILENAME);
fos.write(myData.getBytes());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void loadingoutstore() {
String msg = null;
try {
FileInputStream fis = new FileInputStream(
Environment.getExternalStorageDirectory() + "/" + FILENAME);
byte[] reader = new byte[fis.available()];
while (fis.read(reader) != -1) {
msg = new String(reader);
}
view.setText(msg);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}