android:sqlite的使用(读取res/raw的db文件)一种方法

来源:互联网 发布:他知道我们在膜他知乎 编辑:程序博客网 时间:2024/05/19 04:54

 1、

public static final StringDATABASE_FILENAME= "stock.db";// 这个是DB文件名字public static final StringPACKAGE_NAME= "com.huaxa.it.tuling";// 这个是自己项目包路径public static final StringDATABASE_PATH= android.os.Environment.getExternalStorageDirectory().getAbsolutePath()+"/" +PACKAGE_NAME;// 获取存储位置地址

2、将res/raw的db文件读取出来,然后在手机某个目录下并生成db文件

private SQLiteOpenHelpersqlHelper;private static SQLiteDatabasedatabase;private Stringname= "";// 股票搜索出来的代码static String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;public static SQLiteDatabase openDatabase(Context context){try{//String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;File dir = new File(DATABASE_PATH);if (!dir.exists()){dir.mkdir();//新建文件}if (!(new File(databaseFilename)).exists()){InputStream is = context.getResources().openRawResource(R.raw.stock);FileOutputStream fos = new FileOutputStream(databaseFilename);byte[] buffer = new byte[8192];int count = 0;while ((count = is.read(buffer)) > 0){fos.write(buffer, 0, count);}fos.close();is.close();} database = SQLiteDatabase.openOrCreateDatabase(databaseFilename,null);return database;} catch (Exception e){e.printStackTrace();}return null;}
3、操作数据库
// 获取股票代码public void getGuPiaoDaiMA(String str){SQLiteDatabase db = openDatabase(this); Cursor c = db.rawQuery("select * from db where name=?" ,new String[]{"南方航空"});//此处的db是表名,name是列名  c.moveToFirst(); while (!c.isAfterLast()){name = c.getString(c.getColumnIndex("代码")); c.moveToNext();}}
 

0 0
原创粉丝点击