android中引用项目工程中的sqlite文件(转)
程序员文章站
2022-05-16 12:57:15
...
采用将项目中的sqlite文件拷到android内存卡上的固定位置,先判断位置上是否存在sqlite文件,不存在则复制文件。
sqlite可放在res的raw目录下,亦可放在assets下,放在assets下,可新建其他层次目录,本例选择assets
Sqlite文件testDatabase.db在工程的assets下db下,复制到sdcard中testdb下
数据库中有表test1,列id int ,num int , data string
首先,添加sdcard权限在AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在activity中有如下代码
sqlite可放在res的raw目录下,亦可放在assets下,放在assets下,可新建其他层次目录,本例选择assets
Sqlite文件testDatabase.db在工程的assets下db下,复制到sdcard中testdb下
数据库中有表test1,列id int ,num int , data string
首先,添加sdcard权限在AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在activity中有如下代码
button2.setOnClickListener(new Button.OnClickListener() { @Override publicvoid onClick(View arg0) { try{ String DATABASE_PATH = android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/testdb"; //将要存放于的文件夹 String DATABASE_FILENAME = "testDatabase.db"; //文件名 String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME; File dir = new File(DATABASE_PATH); // 如果/sdcard/testdb目录中存在,创建这个目录 if (!dir.exists()) dir.mkdir(); // 如果在/sdcard/testdb目录中不存在 // test.db文件,则从asset\db目录中复制这个文件到 // SD卡的目录(/sdcard/testdb) if (!(new File(databaseFilename)).exists()) { // 获得封装testDatabase.db文件的InputStream对象 AssetManager asset=getAssets(); InputStream is=asset.open("db/testDatabase.db"); FileOutputStream fos = new FileOutputStream(databaseFilename); byte[] buffer = newbyte[8192]; int count = 0; // 开始复制testDatabase.db文件 while ((count = is.read(buffer)) > 0) { fos.write(buffer, 0, count); } fos.close(); is.close(); asset.close(); } SQLiteDatabase mSQLiteDatabase=openOrCreateDatabase(databaseFilename, Activity.MODE_PRIVATE, null);//有则打开,没有创建 Cursor cur=mSQLiteDatabase.rawQuery("select * from table1", null); if(cur!=null){ if(cur.moveToFirst()){ do{ int idColumnIndex=cur.getColumnIndex("id"); int numColumnIndex=cur.getColumnIndex("num"); int dataColumnIndex=cur.getColumnIndex("data"); int id=cur.getInt(idColumnIndex); int num=cur.getInt(numColumnIndex); String data=cur.getString(dataColumnIndex); System.out.println("id:"+id+";num:"+num+";data:"+data); }while(cur.moveToNext()); cur.close(); } } mSQLiteDatabase.close();//关闭数据库连接 }catch(Exception e){ e.printStackTrace(); } //deleteDatabase("testDatabase.db");//删除数据库 } });
上一篇: 如何腌制鸡腿,做出更上一层楼的味道
推荐阅读
-
Android实现在xml文件中引用自定义View的方法分析
-
过滤Android工程中多余资源文件的解决方法
-
Android实现在xml文件中引用自定义View的方法分析
-
过滤Android工程中多余资源文件的解决方法
-
用PhpStorm开发Thinkphp项目,如何显示引用的css文件中的元素提示?
-
android中引用项目工程中的sqlite文件(转)
-
关于ZendStuido中的include path包含进入的文件跟在项目工程中的文件的区别
-
关于ZendStuido中的include path包含进去的文件跟在项目工程中的文件的区别
-
关于ZendStuido中的include path包含进去的文件跟在项目工程中的文件的区别