Android Studio下添加assets目录的实现方法

 更新时间:2017年7月6日 23:19  点击:1671
本文介绍了Android Studio下添加assets目录的实现方法,非常实用,有兴趣的朋友可以看看

有时候需要放置一些文件而且不被proguard压缩,可以放到assets目录中。

但是工程默认并未创建assets目录,那么如何在android studio中创建assets目录呢?

目录位置为:XXX\src\main\assets

XXX代表你的项目的路径,assets放在src\main目录下。

本文介绍了android 拷贝sqlite数据库到本地sd卡的方法,非常实用,有兴趣的同学可以参考一下

sqlite小型数据库,在开发的时候用于保存数据,在这不做关于它的介绍,本文只是写出了怎么拷贝应用的数据到本地sd卡中。如:一个数据库名为dandy.db的,拷贝到本地中叫seeker.db

代码如下:

 

 代码如下复制代码

/**

 * 拷贝数据库到sd卡

 *

 * @deprecated

 */

publicstaticvoidcopyDataBaseToSD(){

     if(!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {

   return;

 }

     File dbFile =newFile(MvpApplication.getApplication().getDatabasePath("dandy")+".db");

     File file =newFile(Environment.getExternalStorageDirectory(),"seeker.db");

      

     FileChannel inChannel =null,outChannel =null;

      

     try{

        file.createNewFile();

        inChannel =newFileInputStream(dbFile).getChannel();

        outChannel =newFileOutputStream(file).getChannel();

        inChannel.transferTo(0, inChannel.size(), outChannel);

    }catch(Exception e) {

        LogUtils.e(TAG,"copy dataBase to SD error.");

        e.printStackTrace();

    }finally{

        try{

            if(inChannel !=null) {

                inChannel.close();

                inChannel =null;

            }

            if(outChannel !=null){

                outChannel.close();

                outChannel =null;

            }

        }catch(IOException e) {

            LogUtils.e(TAG,"file close error.");

            e.printStackTrace();

        }

    }

}

 

本文介绍了浅谈android中数据库的拷贝的教程,非常实用,不懂的同学可以参考一下

SQLiteDatabase不支持直接从assets读取文件,所以要提前拷贝数据库。在读取数据库时,先在项目中建立assets文件夹用于存放外部文件,将数据库文件拷到该目录下。

代码方法:

 

 代码如下 复制代码

/**

  * 拷贝数据库至file文件夹下

  * @param dbName 数据库名称

  */

 privatevoidinitAddressDB(String dbName) {

   //1,在files文件夹下创建同名dbName数据库文件过程

   File files=getFilesDir();//获取/data/data//files目录

   File file=newFile(files,dbName);//创建名为dbName的文件

   if(file.exists()){

     return;

   }

   //2.输入流读取第三方资产目录下的文件

   InputStream stream=null;

   FileOutputStream fos=null;

   try{

     stream=getAssets().open(dbName);

     //3,将读取的内容写入到指定文件夹的文件中去

     fos=newFileOutputStream(file);

     byte[] bs=newbyte[1024];

     inttemp=-1;

     while((temp=stream.read(bs))!=-1){

       fos.write(bs,0,temp);

     }

   }catch(IOException e) {

     e.printStackTrace();

   }finally{

     if(stream!=null&&fos!=null){

       try{

         stream.close();

         fos.close();

       }catch(IOException e) {

         e.printStackTrace();

       }

     }

   }

 }

 

本文介绍了浅谈android中数据库的拷贝的教程,非常实用,有兴趣的朋友可以看看

SQLiteDatabase不支持直接从assets读取文件,所以要提前拷贝数据库。在读取数据库时,先在项目中建立assets文件夹用于存放外部文件,将数据库文件拷到该目录下。

代码方法:

 

 代码如下复制代码

/**

  * 拷贝数据库至file文件夹下

  * @param dbName 数据库名称

  */

 privatevoidinitAddressDB(String dbName) {

   //1,在files文件夹下创建同名dbName数据库文件过程

   File files=getFilesDir();//获取/data/data//files目录

   File file=newFile(files,dbName);//创建名为dbName的文件

   if(file.exists()){

     return;

   }

   //2.输入流读取第三方资产目录下的文件

   InputStream stream=null;

   FileOutputStream fos=null;

   try{

     stream=getAssets().open(dbName);

     //3,将读取的内容写入到指定文件夹的文件中去

     fos=newFileOutputStream(file);

     byte[] bs=newbyte[1024];

     inttemp=-1;

     while((temp=stream.read(bs))!=-1){

       fos.write(bs,0,temp);

     }

   }catch(IOException e) {

     e.printStackTrace();

   }finally{

     if(stream!=null&&fos!=null){

       try{

         stream.close();

         fos.close();

       }catch(IOException e) {

         e.printStackTrace();

       }

     }

   }

 }

 

[!--infotagslink--]

相关文章

  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • Rstudio中安装package出现的问题及解决

    这篇文章主要介绍了Rstudio中安装package出现的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • mysql 批量更新与批量更新多条记录的不同值实现方法

    批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • Android模拟器上模拟来电和短信配置

    如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。 在Android模拟...2016-09-20
  • 夜神android模拟器设置代理的方法

    夜神android模拟器如何设置代理呢?对于这个问题其实操作起来是非常的简单,下面小编来为各位详细介绍夜神android模拟器设置代理的方法,希望例子能够帮助到各位。 app...2016-09-20
  • android自定义动态设置Button样式【很常用】

    为了增强android应用的用户体验,我们可以在一些Button按钮上自定义动态的设置一些样式,比如交互时改变字体、颜色、背景图等。 今天来看一个通过重写Button来动态实...2016-09-20
  • Android WebView加载html5页面实例教程

    如果我们要在Android应用APP中加载html5页面,我们可以使用WebView,本文我们分享两个WebView加载html5页面实例应用。 实例一:WebView加载html5实现炫酷引导页面大多...2016-09-20
  • EXCEL数据上传到SQL SERVER中的简单实现方法

    EXCEL数据上传到SQL SERVER中的方法需要注意到三点!注意点一:要把EXCEL数据上传到SQL SERVER中必须提前把EXCEL传到服务器上.做法: 在ASP.NET环境中,添加一个FileUpload上传控件后台代码的E.X: 复制代码 代码如下: if...2013-09-23
  • 深入理解Android中View和ViewGroup

    深入理解Android中View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的。View是基类,ViewGroup是它的子类。本教程我们深...2016-09-20
  • Android自定义WebView网络视频播放控件例子

    下面我们来看一篇关于Android自定义WebView网络视频播放控件开发例子,这个文章写得非常的不错下面给各位共享一下吧。 因为业务需要,以下代码均以Youtube网站在线视...2016-10-02
  • Android用MemoryFile文件类读写进行性能优化

    java开发的Android应用,性能一直是一个大问题,,或许是Java语言本身比较消耗内存。本文我们来谈谈Android 性能优化之MemoryFile文件读写。 Android匿名共享内存对外A...2016-09-20
  • Android设置TextView竖着显示实例

    TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
  • Visual Studio 2015下载和安装图文教程

    这篇文章主要为大家详细介绍了Visual Studio 2015下载和安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • android.os.BinderProxy cannot be cast to com解决办法

    本文章来给大家介绍关于android.os.BinderProxy cannot be cast to com解决办法,希望此文章对各位有帮助呀。 Android在绑定服务的时候出现java.lang.ClassCastExc...2016-09-20
  • 关于Visual Studio无法打开源文件"stdio.h"问题

    这篇文章主要介绍了关于Visual Studio无法打开源文件"stdio.h"问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-04-03
  • Android 开发之布局细节对比:RTL模式

    下面我们来看一篇关于Android 开发之布局细节对比:RTL模式 ,希望这篇文章对各位同学会带来帮助,具体的细节如下介绍。 前言 讲真,好久没写博客了,2016都过了一半了,赶紧...2016-10-02
  • Android 实现钉钉自动打卡功能

    这篇文章主要介绍了Android 实现钉钉自动打卡功能的步骤,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下...2021-03-15
  • Android中使用SDcard进行文件的读取方法

    首先如果要在程序中使用sdcard进行存储,我们必须要在AndroidManifset.xml文件进行下面的权限设置: 在AndroidManifest.xml中加入访问SDCard的权限如下: <!--...2016-09-20