android中的存储方式
android中的存储方式无非就是两种:①存储到本地文件,有File和SharedPreferences两种方式;②存储到数据库,也分根据方法不同也分为两种:一种是通过访问网络连接到服务器,然后再由服务器将数据存到数据库中,第二种是采用自带的sqlite数据库存储。
这次先介绍第一种方法(直接在类中写代码就可以,这里不过多解释,代码中有注释如下:):
①File:
代码中有注释如下:
/*存入数据*/
FileOutputStream fos=openFileOutput(“text.txt”,MainActivity.MODE_PRIVATE);
/*MODE_PRIVATE是替换数据;MODE_APPEND是附加数据*/
fos.write(“******”);
/*这里的内容只能是byte[]类型和int 类型,具体用法看应用。String 类型 转化为 byte[]类型 只需让变量引用getBytes()*/
/*读取数据:*/
FileInputStream fis=openFileInput(“text.txt”);
byte[] readBytes=new byte[fis.available()];
/*这个方法可以在读写操作前先得知数据流里有多少个字节可以读取*/
fis.read(readBytes);
String s =EncodingUtils.getString(bs, "UTF-8");
/*转化bs的类型与编码方式*/
其他的写法:
File file = new File("C:/java.txt");
FileInputStream fis = new FileInputStream(file);//字节流
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
//先是字节流转字符流,然后再加缓冲区
String s = "";
String re = "";
while ((s = br.readLine()) != null) {
re += s;
}
System.out.println(re);
//读取数据
FileOutputStream out = new FileOutputStream(file, true); // 如果追加方式用true
StringBuffer sb = new StringBuffer();
sb.append("-----------" + "------------\r\n");//在文件中加入换行,方便取数据
out.write(sb.toString().getBytes("utf-8"));
//保存数据
File中也可以存多个数据以及键值对的数据,只要转化成字节类型的就可以了
②SharedPreferences:
/*存入数据方法1*/
SharedPreferences mySharedPreferences=getSharedPreferences("test", Activity.MODE_PRIVATE);
/*第一个参数为要创建的文件名,第二参数是设置文件的权限*/
SharedPreferences.Editor editor = mySharedPreferences.edit();
/*这个地方是修改的意思,获取sharePreferences修改的对象*/
editor.putString("name", name); //键值对,以键寻值
editor.putString("id", id);
editor.putString("eatid", eatid);
editor.putString("wearid", wearid);
editor.putString("playid", playid);
editor.commit();//提交or保存
/*文件创建模式:Activity.MODE_APPEND
如果该文件已经存在,然后将数据写入,而不是抹掉它现有文件的末尾。
文件创建模式:MODE_PRIVATE
默认模式,在那里创建的文件只能由应用程序调用,即为私有的
文件创建模式:Activity.MODE_WORLD_READABLE
允许所有其他应用程序有读取和创建文件的权限。
文件创建模式:Activity.MODE_WORLD_WRITEABLE
允许所有其他应用程序具有写入、访问和创建的文件权限。*/
/*存入数据方法2*/
SharedPreferences mySharedPreferences=getSharedPreferences("test", Activity.MODE_PRIVATE);
mySharedPreferences.edit().putString("name", name).putString("id", id).commit();
/*这里只存入了两条数据*/
/*读取数据*/
SharedPreferences ss= getSharedPreferences("test", Activity.MODE_PRIVATE);
//这里和存入数据的时候一样
String name = ss.getString("name", "zwq");
/*如果name键的值为空,name就会获得"zwq"*/
String id = ss.getString("id", "");
这种方法是比较简单的,虽然用的不多,但是也比较重要。