经典的流操做java
openFileOutput()sql
public void save() { String data = "Data to save"; FileOutputStream out = null; BufferedWriter writer = null; try { out = openFileOutput("data", Context.MODE_PRIVATE); writer = new BufferedWriter(new OutputStreamWriter(out)); writer.write(data); } catch (IOException e) { e.printStackTrace(); } finally { try { if (writer != null) { writer.close(); } } catch (IOException e) { e.printStackTrace(); } } }
自动保存到 /data/data/<项目id>/files/数据库
openFileInput()安全
public String load() { FileInputStream in = null; BufferedReader reader = null; StringBuilder content = new StringBuilder(); try { in = openFileInput("data"); reader = new BufferedReader(new InputStreamReader(in)); String line = ""; while ((line = reader.readLine()) != null) { content.append(line); } } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return content.toString(); }
键值对形式存储,xml形式格式。app
getSharedPreferences(文件名,模式)ide
SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit(); editor.putString("name", "Tom"); editor.putInt("age", 28); editor.putBoolean("married", false); editor.commit();
存地址 /data/data/<项目id>/shared_prefs /学习
SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE); String name = pref.getString("name", ""); int age = pref.getInt("age", 0); boolean married = pref.getBoolean("married", false);
###SQLite 数据库存储 你懂的。ui
public class MyDatabaseHelper extends SQLiteOpenHelper { //接收参数:String name, 数据库名称 int version 用于更新版本 public MyDatabaseHelper(Context context, String name, CursorFactoryfactory, int version){} @Override public void onCreate(SQLiteDatabase db) { db.execSQL(sql语句); } //只有在version 变大时才执行 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this, "BookStore.db", null, 1); //这一步就建立数据库,和表结构了 SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", "The Da Vinci Code"); values.put("author", "Dan Brown"); // C db.insert("Book", null, values); // U db.update("Book", values, "name = ?", new String[] { "Tom" }); // D db.delete("Book", "name = ?", new String[] { "Tom" }); // R //String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) Cursor cursor = db.query("Book", null, null, null, null, null, null); while(cursor.moveToNext()){ String name = cursor.getString(cursor.getColumnIndex("name")); int pages = cursor.getInt(cursor.getColumnIndex("pages")); } cursor.close();
固然你也能够本身写sqlthis
db.execSQL("insert into Book (name, author, pages, price) values(?, ?, ?, ?)", new String[] { "The Da Vinci Code", "Dan Brown", "454", "16.96" })
db.beginTransaction(); // 开启事务code
db.setTransactionSuccessful(); // 事务已经执行成功
db.endTransaction(); // 结束事务
内容提供器( Content Provider) 下文学习