Android的数据储存和IO(关于Cursor类后续补充)

1. 使用SharedPreferences与Editor存储少量数据
     a.获得 SharedPreferences实例的方法:     
      SharedPreferences sp =getSharedPreferences(String name,int mode);
               其中name为xml的名称,
               mode:Context.MODE_PRIVATE(推荐使用),
                             Context.MODE_WORLD_READABLE,
                             Context.MODE_WORLD_WRITEABLE(后两个不推荐使用)
     b.获取Editor对象:
       SharedPreferences.Editor editor = sp.edit();
      
     c.从xml中获取数据
          sp.getXXX(key,defvalue);

     d.向xml中写数据
          editor.putXXX(key,value);//假如要存入日期,要用SimpleDateFormat将Date转换成String,再传进去
          editor.commit();//提交所有存入的数据

     e.xml中的数据
          xml中的数据以 方式存储,所以内部行程一个个key-value对

2. File存储,访问手机存储器上的文件,区别SD卡(打开输入流或者输出流之后,用法跟Java IO一样)
     Context提供了FileInputStream openFileInput(String name), FileOutputStream openFileOutput(String name,int mode)方法
     其中mde:MODE_PRIVATE:该文件只能被当前程序读写
                        MODE_APPEND:可以向该文件追加内容
     a.关于读文件
          //打开文件输入流
          FileInputStream fis = openFileInput(FILE_NAME);
          byte[] buff =new byte[1024];
          int hasRead=0;
          StringBuilder sb = new StringBuilder("");
          //读取文件内容
          while((hasRead = fis.Read(buff))>0){
                    sb.append(new String(buff,0,hasRead));
          }
          //关闭文件输入流
          fis.close();
     b.关于写文件
          FileOutputStream fos =  openFileOutput(FILE_NAME,MODE_APPEND);
          //将fos包装成PrintStream
          PrintStream ps = new PringStream(fos);
          //写入文件内容
          ps.println(content);
          ps.close();
3. 读写SD卡上的文件
     a.添加权限
     b.判断是否插入SD卡,而且是否已经添加权限
          if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
     c.读文件(先调用上面方法判断)
          //获取SD卡的存储目录
          File sdCardDir = Environment.getExternalStorageDirectory();
          //再用Java IO的方法可以读取
     d.写文件(同上)
          利用RandomAccessFile来写文件,如果用FileOutStream写的话会清空所有内容

4.使用SQLite进行数据库操作
     a.步骤
          1.获取 SQLiteDatabase 对象,它代表了与数据库的连接
          2.调用 SQLiteDatabase的方法来执行SQL语句
          3.操作SQL返回的结果,例如用SimpleCursorAdapter封装Cursor
          4.关闭 SQLiteDatabase,回收资源
     b.SQLite建表时的注意事项
          SQLite除了integer primary key要指定类型之外,其他数据可以省略后面的类型:
          create table my_inf{
                 id interger primary key autoincrement,
                 name,
                 pass
          };
     c.继承SQLiteOpenHelper类
          1.重写onCreate(SQLiteDatebase db)在里面创建表
            重写onUpgrade( SQLiteDatebase db ,int oldVersion,int newVersion)当版本更新时调用
         2.调用getReadableDatabase()读写方式打开数据库的 SQLiteDatabase对象
            调用 getWritableDatabase()写方式打开数据 SQLiteDatabase对象
                得到SQLiteDatabase对象之后可以调用该对象的executeSQL()方法执行SQL了
         3.调用查询方法返回的都是Cursor对象(后续补充)

你可能感兴趣的:(Android学习自我总结)