启动Android App时,动态将Sqlite数据库文件导入到手机中类方法
package com.aqioo.db; import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream; import com.aqioo.R; import android.content.Context;
import android.database.sqlite.SQLiteDatabase; //在res文件夹下新建 raw 文件夹
//数据库文件放在 \res\raw\test.db
//在调用Sqlite的操作前实例化此类即可
//code by:博客园-曹永思
public class ImportDbFileToPhone {
// /data/data/名称空间(com.aqioo)/databases
private static final String DATABASE_PATH = "/data/data/com.aqioo/databases"; private static final int DATABASE_VERSION = 0; private static final String DATABASE_NAME = "test.db";//数据库 private static String outFileName = DATABASE_PATH + "/" + DATABASE_NAME; private Context context; private SQLiteDatabase database; public ImportDbFileToPhone(Context context) {
this.context = context; File file = new File(outFileName);
if (file.exists()) {
database = SQLiteDatabase.openOrCreateDatabase(outFileName, null);
if (database.getVersion() != DATABASE_VERSION) {
database.close();
file.delete();
}
}
try {
buildDatabase();
} catch (Exception e) {
e.printStackTrace();
} } private void buildDatabase() throws Exception {
InputStream myInput = context.getResources().openRawResource(
R.raw.aqiooapp);
File file = new File(outFileName); File dir = new File(DATABASE_PATH);
if (!dir.exists()) {
if (!dir.mkdir()) {
throw new Exception("创建失败");
}
} if (!file.exists()) {
try {
OutputStream myOutput = new FileOutputStream(outFileName); byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, length);
}
myOutput.close();
myInput.close();
} catch (Exception e) {
e.printStackTrace();
} }
} }
欢迎转载,转载请注明出处,希望帮到更多人。
启动Android App时,动态将Sqlite数据库文件导入到手机中类方法的更多相关文章
- WEKA从sqlite数据库文件导入数据
1.编写代码的方式 只需要在java工程中导入weka.jar和sqlite-jdbc-3.8.7.jar两个jar包, weka.jar可以在weka的安装路径下找到, sqlite-jdbc-3. ...
- sqlite数据库文件导入到sqlserver 2016-03-26 21:55 1292人阅读 评论(1) 收藏
最近在公司做项目,需要做两个版本,都是cs的,然后要求是一个单机版,自带数据库,另一个要进行局域网内的连接,所以公司的大牛设计是,局域网版的用sqlserver2008,单机版的则用sqlite.然后 ...
- 在 Android 应用程序中使用 SQLite 数据库以及怎么用
part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开 ...
- 在Android中查看和管理sqlite数据库
在Android中可以使用Eclipse插件DDMS来查看,也可以使用Android工具包中的adb工具来查看.android项目中的sqlite数据库位于/data/data/项目包/databas ...
- Android 批量插入数据到SQLite数据库
Android中在sqlite插入数据的时候默认一条语句就是一个事务,因此如果存在上万条数据插入的话,那就需要执行上万次插入操作,操作速度可想而知.因此在Android中插入数据时,使用批量插入的方式 ...
- Android批量插入数据到SQLite数据库
Android中在sqlite插入数据的时候默认一条语句就是一个事务,因此如果存在上万条数据插入的话,那就需要执行上万次插入操作,操作速度可想而知.因此在Android中插入数据时,使用批量插入的方式 ...
- Android虚拟机中的sqlite数据库文件
Android虚拟机中的sqlite数据库文件 ①
- 【转】Phonegap离线调用SQLite数据库文件
按:不可多得的好文章,转过来以免源丢失 文章来源:http://liuwei.co/index.php/default/The-quickest-way-to-execute-many-sql-for ...
- 修复 SQLite 数据库文件
目 录 第1章 说明 1 1 下载SQLite Tools 1 2 运行 2 第1章 说明 笔者编写的一个程序,无法往 SQLite 数据库文件里写数据.使用SQLiteSpy打开该 ...
随机推荐
- 5-java 排序, sort, collections.sort()
https://blog.csdn.net/whp1473/article/details/79678974 import java.util.ArrayList; import java.util. ...
- public void method(),void前面的泛型T是什么
public <T>这个T是个修饰符的功能,表示是个泛型方法,就像有static修饰的方法是个静态方法一样. 注意<T> 不是返回值,此处的返回值是void ,此处的<T ...
- ajax 之POST请求,参数序列化
比如,,我们在没有使用jquery的时候,没有$.post来让我们使用,那我们像下面这样直接发送: var params1 = { username: username, passwrod: pass ...
- SharpSvn 调用在运行时提示加载程序集出错,或有依赖项
策略后引用: SharpSvn, Version=1.8009.3299.43, Culture=neutral, PublicKeyToken=d729672594885a28日志: 尝试下载新的 ...
- Informatica_(5)高级应用
五.高级应用21.任务分区 分区是通过并行处理来提供PowerCenter的执行效率. 分区类型包括:Database partitioning.Hash Auto-keys.Hash User-ke ...
- C++中string类
https://blog.csdn.net/sinat_36184075/article/details/54836053 https://blog.csdn.net/fdqw_sph/article ...
- mysql技术内幕之常规使用
mysql中:终止语句方法: 1.在语句结尾处,输入分号(:)表示语句到此结束 2.使用\g(意思是go) \G以垂直的方式显示结果,每行显示一个值 数据库:数据库中包含表,对表中数据执行插入,检索, ...
- DOM-动态操作心得
这个知识点都是之前看过的,就当是复习了 一.创建元素的三种方法 第一种: document.write() 识别标签 但会覆盖之前内容 第二种: 用元素自身的innerHTML方法 不识别标签 但 ...
- tableView上出现空白的解决办法
创建tableView后,出现如下效果 解决办法: self.automaticallyAdjustsScrollViewInsets = NO; 个人认为,应该是取消系统默认行为,保证界 ...
- LoibreOJ 2042. 「CQOI2016」不同的最小割 最小割树 Gomory-Hu tree
2042. 「CQOI2016」不同的最小割 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据 题目描述 ...