这个可以在每次应用开启时检测database文件夹下是否有这个名称的数据库,如果没有就从asserts中获得释放一次,给你看一下我的代码:
我的asserts里有一个文件叫做:addressdb
/在onCreate()方法中调用
/
private File initDatabase (){
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
File file = getDatabasePath("addressdb");
byte [] buffer = new byte[1024];
int c;
try {
if (!fileexists())
filegetParentFile()mkdirs();
else
return file;
bis = new BufferedInputStream(getAssets()open("addressdb"));
bos = new BufferedOutputStream(new FileOutputStream(file));
while ((c = bisread(buffer)) != -1)
boswrite(buffer, 0, c);
} catch (IOException e) {
eprintStackTrace();
return null;
}finally{
try {
if (bis != null)
bisclose();
if (bos != null) {
bosclose();
bosflush();
}
}catch (IOException e){
eprintStackTrace();
}
}
return file;
}
这个问题至于这么纠结么,很简单的东西,20行代码差不多就能搞定,看你什么需求,如果只是单纯的从服务器端读取数据的话>
这种读本地数据库的时间快慢在相同的代码下是和手机的配置相关的,至于代码嘛,读取你肯定也知道的。最重要的一点要提醒你,在进行数据库 *** 作的时候记得要新开一个线程,不要在主线程做,不然肯定感觉到程序卡顿
以上就是关于如何读取android asserts下面已经存在的sqlite数据库全部的内容,包括:如何读取android asserts下面已经存在的sqlite数据库、请问,我想写个android客户端程序来读取服务器端数据库里的数据,应该用socket还是用http呢、如何解决android读数据库慢的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)