当前位置:网站首页> 开发 > 数据存储 > 浏览文章

Android数据存储和读取的三种方法

来源: 网络 时间: 2022-06-15 阅读:

Android数据存储和读取的三种方法

一、文件存储

1、利用文件进行数据的存储

public static boolean saveAsFilepath(String username, String password){

// 直接给出要写入文件的路径

File file = new File("data/data/cn.edu.jssvc.logonscreen/info.txt");

try {

FileOutputStream fos = new FileOutputStream(file);

fos.write(username.getBytes());

fos.write(("\n"+password).getBytes());

fos.close();

return true;

} catch (Exception e) {

e.printStackTrace();

}

return false;

2、利用文件进行数据的读取

public static String[] loadInfoAsFilepath(){

String []temp=new String[2];

// 直接给出要读取文件的路径

File file = new File("data/data/cn.edu.jssvc.logonscreen/info.txt");

try {

FileInputStream fis = new FileInputStream(file);

BufferedReader reader = new BufferedReader(new InputStreamReader(fis));

temp[0] = reader.readLine();

temp[1] = reader.readLine();

} catch (Exception e) {

e.printStackTrace();

}

return temp;

}

二、Context存储

1、利用Context进行数据的存储

public static boolean saveAsContext(Context context, String username, String password){

FileOutputStream fos = null;

try {

fos = context.openFileOutput("info2.txt", context.MODE_PRIVATE);

fos.write(username.getBytes());

fos.write(("\n"+password).getBytes());

return true;

} catch (Exception e) {

e.printStackTrace();

}

return false;

}

这种方法会将数据保存到data/data/包名/files目录下

2、利用Context进行数据的读取

public static String[] loadInfoAsContext(Context context){

// 计算要读取文件的总行数

int fileLength = 0;

try {

// 自动读取data/data/包名/files目录,只需给出文件名即可

FileInputStream fis = context.openFileInput("info2.txt");

BufferedReader reader = new BufferedReader(new InputStreamReader(fis));

while(reader.readLine()!=null) {

fileLength++;

}

} catch (Exception e) {

e.printStackTrace();

}

// 读取文件数据

String []temp = new String[fileLength];

try {

FileInputStream fis = context.openFileInput("info2.txt");

BufferedReader reader = new BufferedReader(new InputStreamReader(fis));

temp[0] = reader.readLine();

temp[1] = reader.readLine();

} catch (Exception e) {

e.printStackTrace();

}

return temp;

}

三、SharedPreferences存储

首先通过Context的getSharedPreferences()方法获取SharedPreferences对象

SharedPreferences sp;

// getSharedPreferences(para1:文件名;para2:模式),是Context的方法

// 读和写都使用sp进行操作,所以处理的文件都是info3

sp = getSharedPreferences("info3", MODE_PRIVATE);



1、利用SharedPreferences进行数据的存储

SharedPreferences.Editor editor = sp.edit();

// putString(para1:键;para2:值),是xml保存数据的格式

editor.putString("USERNAME", username);

editor.putString("PASSWORD", password);

editor.putBoolean("ISCHECKED", checked);

// 只有调用commit方法后,putXXX才会生效

editor.commit();

Log.d("MainActivity", "保存成功");

2、利用SharedPreferences进行数据的读取

这种方法会自动读取data/data/包名/shared_prefs目录,只需给出文件名即可

这种方法可以将指定Key对应的value读取出来/

/ getString:获取xml文件中的数据,这里给出key,获取对应的value(para1:键;para2:如果找不到对应的value,则将defvalue作为value)

Log.d("MainActivity", sp.getString("USERNAME","defusername");

Log.d("MainActivity", sp.getString("PASSWORD","defpassword");

最后,虽然有三种数据存储和读取的方法,但平时进行Android开发时,建议使用第二种或第三种方法

下一篇 :没有了,点击返回
相关内容