博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3.2 拷贝数据库到系统目录
阅读量:37441 次
发布时间:2020-12-04

本文共 1617 字,大约阅读时间需要 5 分钟。

加载外部文件的几种常见做法:


1. 放在assets目录下

InputStream is = am.open("address.db"); 不会对该文件生成id


2. 放在res目录下的raw目录下.

InputStream is =getResources().openRawResource(R.raw.address);

编译这个文件生成id



3. javase做法

InputStream is = getClassLoader().getResourceAsStream("address.db");

                        


4. 联网下载.

地图应用. 高德导航. 1G 10G

mp3学英语

游戏应用的素材资源  联网下载

-----------------------------------------------------------------------------
1.将数据库文件放到assets目录下
2.在splashActivity创建时判断系统目录下是否有该文件,如果没有则复制到系统目录下
 
 
 
 
 
 
/**
 * 子线程中弹出土司跟新 ui
 *  
@author  
Administrator
 *
 */
public  
class  
ToastUtils {
      
public  
static  
void  
showToastInThread(  
final  
Activity context,  
final  
String msg){
              
//在子线程里面更新 ui
            context.runOnUiThread(  
new  
Runnable() {
                    
@Override
                    
public  
void  
run() {
                        Toast. makeText(context, msg, 0).show();
                        
                  }
            });  
//线程的join
      }
}
---------------------------------------------------------
2.在splashActivity创建时判断系统目录下是否有该文件,如果没有则复制到系统目录下
 
/**
   * 拷贝号码地址数据库到手机目录下
   */
     
private  
void  
copyAddressDb() {
            File file=  
new  
File(getFilesDir(),  
"address.db"
);
      
if
(file.exists()&&file.length()>0){
           
return
      }
      
      
      
new  
Thread(){
         
public  
void  
run() {
              
//得到assets目录下address.db对应输入流
             AssetManager am = getAssets();
              
try  
{
                        InputStream is = am.open(  
"address.db"
);
                        File file=  
new  
File(getFilesDir(),  
"address.db"
);
                        FileOutputStream  fos=  
new  
FileOutputStream(file);
                        
                          
byte
[]  buffer=  
new  
byte
[1024];
                          
int  
len=0;
                          
while
((len=is.read(buffer))!=-1){
                              fos.write(buffer, 0,len);
                        }
                        
                        fos.close();
                        is.close();
                        
                          
//在子线程中跟新 ui
                        ToastUtils. showToastInThread(SplashActivity.
this
,
"拷贝数据库成功..."
);
                        
                  }  
catch  
(IOException e) {
                        e.printStackTrace();
                          
//在子线程中跟新 ui
                        ToastUtils. showToastInThread(SplashActivity.
this
,
"拷贝数据库失败..."
);
                        
                  }
             
             
        };
            
  }.start();
            
      
      }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
你可能感兴趣的文章
安装mysql最后一步密码_MySQL安装最后一步无响应解决方法
查看>>
mysql modify语句格式_40条MySQL数据库语句格式
查看>>
mysql忽略大小写jpa解决_JPA 大小写敏感问题
查看>>
MySQL5.7 固态盘性能设置_MySQL 5.7 安装完成后,立即要调整的性能选项
查看>>
idea java web mysql_解决idea中javaweb的mysql8.0.15配置问题
查看>>
mysql.net 环境配置_windows环境下下安装配置mysql5.7.24
查看>>
servlet对象是在服务器端还是在客户端被创建?_Servlet编程之会话管理
查看>>
sqoop mysql hadoop_如何将mysql数据导入Hadoop之Sqoop安装
查看>>
webpack卸载_webpack的安装
查看>>
mysql主库线程_MySQL 主从扩展--主库的线程状态
查看>>
phpmyadmin管理mysql_LAMP实验二:使用phpMyAdmin管理MySQL
查看>>
mysql一秒最多写多少次_Mysql的两种“超过多少次”写法(力扣596)
查看>>
mysql el函数_MySQL中的常用函数
查看>>
mysql 备份 晓燕_mysql字符串函数
查看>>
mysql返回第n个值_获取mysql一组数据中的第N大的值
查看>>
java 获取请求的路径_JavaWeb-request获取请求路径的相关方法
查看>>
java 适应边框_带边框自适应宽度100%的解决办法
查看>>
router vue 页签文字_记一次基于vue的spa多页签实践经验
查看>>
估计的商是什么意思_商是什么意思,商的繁体字,商有几笔,商字几画
查看>>
java泛型改进_编写高质量代码:改善Java程序的151个建议(第7章:泛型和反射___建议93~97)...
查看>>