我想把自己用管理工具建立的sqlite数据库 打包到APK中 在程序启动时复制到data/data/...../databases/这个目录下 可是我在复制过程中设置的buffer字节数组如果小了 复制后的数据库就打不开 我把那个复制到手机上的数据库拷贝到电脑上 用管理工具也打不开了 提示说 这个文件不是数据库文件 可是如果我把buffer设置的更大 就不会有这样的问题 我单步执行代码 发现buffer太小的话 复制数据库文件的代码 那个循环 循环了至少两次 但是buffer设置大点 循环就只有一次 这????????????????????????????????????、为什么啊????
这是复制数据库文件的代码 byte[] buffer = new byte[1024];
// in = getResources().getAssets().open("ASMdb.db");
try
{
while (in.read(buffer) > 0)
{
FileOutputStream out = new FileOutputStream(
"data/data/com.assembly/databases/ASMdb.db");
out.write(buffer);
} } catch (Exception e)
{
// TODO: handle exception
}
这是复制数据库文件的代码 byte[] buffer = new byte[1024];
// in = getResources().getAssets().open("ASMdb.db");
try
{
while (in.read(buffer) > 0)
{
FileOutputStream out = new FileOutputStream(
"data/data/com.assembly/databases/ASMdb.db");
out.write(buffer);
} } catch (Exception e)
{
// TODO: handle exception
}
解决方案 »
- android手机联网问题
- 如何在onCreate中获取TextView的宽度
- 怎么提取出输入框Dialog中的内容?
- Android 关闭对话框的问题??????
- hello-jni编译问题no rule to make target all怎么回事??
- 求助关于android的SQLite的问题。
- [求助]如何在eclipse环境下修改android1.5到2.1版本
- Ubuntu 同步源码是网速太慢
- 微信主界面UI怎么实现?
- 我用action Provider创建了内建的分享功能,现在想将edittext长按后复制的文字,进行分享
- 求webView上可用的富文本编辑器
- 保存当前使用的APN的xml是在哪初始化的?
"data/data/com.assembly/databases/ASMdb.db");while ((count = is.read(buffer)) != -1) {
out.write(buffer, 0, count); }
+1
ASMdb.db文件大小不要超过1MB
"data/data/com.assembly/databases/ASMdb.db");这句应该在外面,要不每次都要覆盖。int len = -1;
while((len = in.read(buffer))>0){
fos.write(buffer,0,len);
}lz基础似乎不太好。复习下基础吧