1 使用SharedPreferences存储数据
2 文件存储数据
3 SQLite数据库存储数据
4 使用ContentProvider存储数据
5 网络存储数据
首先我们会介绍文件存储和SharedPreferences的使用。
文件存储
对于文件存储来说,使用方法和我们普通的java中得使用方法基本一样。代码片段如下:
File file = new File("/data/data/com.mxy/info.txt"); try { FileOutputStream fos = new FileOutputStream(file); fos.write((username + "##" + password).getBytes()); fos.close(); return true; } catch (Exception e) { e.printStackTrace(); return false; }这里我们需要先理解android的程序安装位置,安装路径为/data/data/包名,所以我们在我们应用程序所在的目录下创建文件。但是这时候我们写的是绝对路径,如果我们修改了我们程序的包名,那我们这里需要重新修改。Android工程师已经想到了这个问题,提供了获取对应路径的方法getFilesDir(),这时候返回值是/data/data/包名/files,片段如下:
//这种会由程序自动去构建前面的路径,但是需要知道上下文对象Context,这里直接使用的this,如果是外部方法,需要传入该参数 //获取的路径为/data/data/包名/files File file = new File(this.getFilesDir(),"info.txt"); //保存到缓存目录 //File file = new File(this.getCacheDir(),"info.txt");同时我们可以使用this.openFileOutput(name, mode)在路径路径为/data/data/包名/files创建名字为name的文件,这里面的mode 参考http://lsw1991abc.blog.163.com/blog/static/215941822012921111538676/?
Context.MODE_APPEND
Context.MODE_PRIVATE;
Context.MODE_WORLD_READABLE;
Context.MODE_WORLD_WRITEABLE;
SharedPreferences
SharedPreferences是Android平台上一个轻量级的存储类,实现SharedPreferences存储的步骤如下:
一、根据Context获取SharedPreferences对象
二、利用edit()方法获取Editor对象。
三、通过Editor对象存储key-value键值对数据。
四、通过commit()方法提交数据。
/** * sharedPerference实际是创建一个xml文件用于保存数据 路径为/data/data/包名/shared_perfs/xxx.xml * 数据格式类似map */ case R.id.btn_save_sharedperference: SharedPreferences sp = this.getSharedPreferences("config", this.MODE_PRIVATE); Editor editor = sp.edit(); editor.putString("username", "zhangsan"); editor.putString("password", "aabb"); editor.commit(); Toast.makeText(this, "保存成功", Toast.LENGTH_LONG).show(); break; case R.id.btn_read_sharedperference: SharedPreferences sp1 = this.getSharedPreferences("config", this.MODE_PRIVATE); Toast.makeText(this, "username:" + sp1.getString("username", "username null") + " password:" + sp1.getString("password", "password null"), Toast.LENGTH_LONG).show(); break;获取sd卡信息
//获取sd的信息 File file = Environment.getExternalStorageDirectory(); StatFs stat = new StatFs(file.getPath()); long blockSize = stat.getBlockSize();//获取每个Block的大小 long totalBlocks = stat.getBlockCount();//获取Block的总数 long availiableBlocks = stat.getAvailableBlocks();//获取可以使用的Block数目 String totalStr = android.text.format.Formatter.formatFileSize(MainActivity.this, totalBlocks * blockSize) ; String availiableStr = android.text.format.Formatter.formatFileSize(MainActivity.this, availiableBlocks * blockSize) ; Toast.makeText(MainActivity.this, "总内存:" + totalStr + ",剩余内存:" + availiableStr, Toast.LENGTH_LONG).show();
例子工程下载地址:http://download.csdn.net/detail/mengxiangyue/6997785
转载请注明出处:http://blog.csdn.net/mengxiangyue
Android自学笔记-8-Android数据存储1:文件、SharedPreferences和获取sd卡信息,布布扣,bubuko.com