Android数据存储的五种方式1:https://developer.aliyun.com/article/1473559
cache目录下读数据
FileInputStream fis; BufferedReader br; File file = new File(getCacheDir(), "gjcData"); try { fis = new FileInputStream(file); br = new BufferedReader(new InputStreamReader(fis)); String line = br.readLine(); while(line!=null){ line = br.readLine(); } } catch (Exception e) { e.printStackTrace(); } finally { br.close(); fis.close(); }
外部存储
添加权限
<!-- 允许程序写入外部存储--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
写数据
FileOutputStream fos; BufferedWriter bw; // 创建gjcData文件对象,由于不同手机SDcard目录不同,所以我们通过Environment.getExternalStorageDirectory()获取路径 File file = new File(Environment.getExternalStorageDirectory(), "gjcData"); if (!file.exists()){ try { file.createNewFile(); } catch (Exception e) { e.printStackTrace(); } } try { fos =new FileOutputStream(file); bw = new BufferedWriter(new OutputStreamWriter(fos)); bw.write("Hello world"); bw.flush(); } catch (Exception e) { e.printStackTrace(); } finally { bw.close(); fos.close(); }
读数据
FileInputStream fis; BufferedReader br; File file = new File(Environment.getExternalStorageDirectory(), "gjcData"); try { fis = new FileInputStream(file); br = new BufferedReader(new InputStreamReader(fis)); String line = br.readLine(); while(line!=null){ line = br.readLine(); } } catch (Exception e) { e.printStackTrace(); } finally { br.close(); fis.close(); }
SQLite数据库存储数据
介绍: SQLite是Android所带的一个标准的数据库,它支持SQL语句,它是一个轻量级的嵌入式数据库
数据库的操作借助于SQLiteOpenHelper,SQLiteOpenHelper是一个抽象类,所以我们在使用SQLiteOpenHelper时要先创建一个MySQLiteOpenHelper类继承SQLiteOpenHelper
SQLiteOpenHelper有两个比较重要的方法
getReadableDatabase()方法返回数据库是一个只读的;
getWriteableDatabase()方法获得是一个可读写的数据库对象。
创建一个MySQLiteOpenHelper
public class MySQLiteOpenHelper extends SQLiteOpenHelper { // 构造器,传入四个参数(Context上下文环境,String数据库名字,CursorFactory操作数据库的Cursor对象(通常为null),int数据库版本号) public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } // 自定义的构造器 public MySQLiteOpenHelper(Context context, String name) { this(context, name, null, 1);//传入Context和数据库的名称,调用上面的构造器 } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { // 在创建数据库时,创建一个user数据表 String sql = "create table if not exists user(id integer primary key autoincrement, name varchar(20), password varchar(20))"; sqLiteDatabase.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { //用于修改数据库版本(第一个参数是SQLiteDatabase对象,第二个参数是旧的版本号,第三个参数是新版本号。一般我们在这个方法里边删除数据库表,并建立新的数据库表) } }
Android数据存储的五种方式3:https://developer.aliyun.com/article/1473561