• 从AndroidStudio assets目录复制文件到sd卡目录:(后两个参数表示sd卡路径及文件名称)

public static boolean copyFileFromAssets(Context context, String filepath, String fileName) 
   {
        boolean result = false;
        try {
            if (!(new File(filepath +"/"+ fileName)).exists()) { //sd卡文件不存在
                File f = new File(filepath);
                if (!f.exists()) {
                    f.mkdir();
                }
                try {
                    InputStream is = context.getAssets().open(fileName); //assets资源文件
                    OutputStream os = new FileOutputStream(filepath +"/"+ fileName);
                    byte[] buffer = new byte[1024];
                    int length;
                    while ((length = is.read(buffer)) > 0) {
                        os.write(buffer, 0, length);
                    }
                    os.flush();
                    os.close();
                    is.close();
                    result = true;
                } catch (Exception e) {
                    e.printStackTrace();
                }
            } else {
                result = true;
            }
        } catch (Exception e) {
            Log.d("fcj",e.toString());
        }
        return result;

    }
  • 处理sd卡SQL文件,需要通过继承SQLiteOpenHelper类,重写其构造方法。因为Android通过SQLiteOpenHelper创建数据库时,默认是将文件保存在'/data/data/应用程序名/databases'目录下,默认的SQLiteOpenHelper的构造方法调用了Context的openOrCreateDatabase方法,所以我们也需要继承Context类,重写openOrCreateDatabase方法,指定sd卡数据库路径。
  • 继承SQLiteOpenHelper :
public class SQLiteHelper extends SQLiteOpenHelper 
{
    public static String DATABASE_PATH = android.os.Environment
            .getExternalStorageDirectory().getAbsolutePath()+"/1SQL";
    public static String DB_NAME = "Identity.sqlite";
    public SQLiteHelper(Context context) {
        super(new SQLiteContext(context, getDirPath ()), DB_NAME, null, 1);
    }
    private static String getDirPath(){
        if(checkDataBase()) {
            return DATABASE_PATH;
        }
        return null;
    }
    public static boolean checkDataBase() { //查询该数据库文件是否存在
        SQLiteDatabase checkDB = null;
        try {
            String myPath = DATABASE_PATH +"/"+ DB_NAME;
            checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
        } catch (SQLiteException e) {
            
        }
        if (checkDB != null) {
            checkDB.close();
        }
        return checkDB != null ? true : false;
    }
    @Override
    public void onOpen(SQLiteDatabase db) {
        super.onOpen(db);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}
  • 继承ContextWrapper:

public class SQLiteContext extends ContextWrapper 
{
    private String mDirPath; //sd卡文件路径,不包括文件名称
    public SQLiteContext(Context base,String dirPath){
        super(base);
         this.mDirPath=dirPath;
    }

@Override
    public SQLiteDatabase openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory, DatabaseErrorHandler errorHandler) {
        return super.openOrCreateDatabase( getDatabasePath (name).getAbsolutePath(), mode, factory, errorHandler);
    }

@Override
    public SQLiteDatabase openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory) {
        return super.openOrCreateDatabase( getDatabasePath (name).getAbsolutePath(),mode, factory);
    }

@Override
    public File getDatabasePath (String name) { //name:文件名称
        File result = new File( mDirPath +File.separator +name);
        if (!result.getParentFile().exists()){
            result.getParentFile().mkdirs();
        }
        return result;
    }
}

  • 查询数据,将数据转成图片:
     SQLiteHelper helper = new SQLiteHelper(this);
     SQLiteDatabase db = helper.getReadableDatabase();
     String[] columns = {"id", "photo", "name", "gender", "place"}; //你要的数据
     String[] selectionArgs = {"VBN97XnLE"}; //选择的目标值
      //查询identify表中,id=VBN97XnLE的数据
     Cursor cursor = db.query("identity", columns, "id=?", selectionArgs, null, null, null);
     while (cursor.moveToNext()) {
          int nameColumnIndex = cursor.getColumnIndex("photo"); //数据“photo”所在的列数
          byte[] strValue = cursor.getBlob(nameColumnIndex);
          Bitmap bitmap = BitmapFactory.decodeByteArray(strValue, 0, strValue.length);
          bitmapView.setImageBitmap(bitmap);
      }

  • 数据库数据
        

AndroidStudio|读取SD卡中的sqlite数据相关推荐

  1. android 读取sd卡中的图片

    一.获取读取SD卡的权限 <!--在SDCard中创建与删除文件权限 --><uses-permission android:name="android.permissio ...

  2. Android 读取SD卡中文件以及内存使用情况

    android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,例如通过实例化一个StatFs对象 new StatFs(path.getPath())把SD卡根目录 ...

  3. 单片机读取SD卡中BMP图片文件并送往TFT彩屏上显示(测试成功)(二)

    二.软件部分 软件中INI_FLAG为设置的一个标志位,通过置1该位可以控制发送或接受数据速度.因为在初始化阶段SD卡操作需要适当放缓,而初始化成功后可以加快数据传动速率. 1>往SD卡写一个字 ...

  4. android编程读取sd卡txt文件,如何读取SD卡中的txt文件?

    我有一个自定义ListView,代码如下.而不是写作: "http://yoursite.com/image1.png","http://yoursite.com/ima ...

  5. android 读取sd卡中string.xml,android,从SD卡读取xml文件中的值

    helo,我想从这个文件中读取值:http://www.nbp.pl/kursy/xml/lastC.xml并用它们填充网格.我的应用程序下载此文件并将其保存在SDCard earch运行时间.我的问 ...

  6. 怎么保证SD卡中的数据与物理SD卡绑定 防止SD卡中数据被复制到电脑上

    转载请标明是引用于 http://blog.csdn.net/chenyujing1234 欢迎大家拍砖 一.应用背景 SD卡中存有我们的导入数据文件data.bat,SD卡要插入到WinCE系统,为 ...

  7. FPGA 读取SD卡图片数据(top_sd_photo)

    一.SD卡介绍 传送门:https://blog.csdn.net/qq_39507748/article/details/113195336 初始化以及读写操作的流程文章中也有说到. 二.实验内容 ...

  8. linux sd卡中文件多时读写,数据存储与访问之——文件存储读写

    1.Android文件的操作模式 在java中要想对文件做读写操作,只需创建 文件,读写数据即可,Android却是不同,android基于Linux,在读写文件的时候,还需要加上文件的操作模式. 文 ...

  9. Android 扫描SD卡中的所有视频文件

    Android应该是已经把所有的视频文件音频都在开机时,扫描完毕然后存在本地SQLite数据库了,因此,我们"扫描"的最简单方法是读取这个已经存储好的数据库.但是这样做,在程序开启 ...

最新文章

  1. linux下获取线程号
  2. python随机数比大小_1到范围内的随机数系统最大大小总是1模2^10
  3. linux 计算集群搭建,使用centos构建服务器计算集群
  4. 个人博客代码_Jekyll + Github Pages 搭建个人免费博客
  5. 浅谈高并发系统性能调优
  6. vue-slicksort拖拽组件
  7. centos 7配置rsync源服务器
  8. PropertyGrid类别排序
  9. windows端口被占用及广告弹窗处理
  10. 台式计算机模拟软件,仿真软件 计算机仿真模拟常用软件有那些?
  11. QTTabBar安装后不生效
  12. xshell通过隧道连接_如何在xshell中创建一个SSH隧道
  13. 【语言小知识】-java中将 两个int[] 型数组 整合到一起的方法
  14. Oracle - CentOS7.4 静默安装Oracle11g
  15. 微信公众号怎么生成能追踪效果的二维码?
  16. MySQL 存储过程笔记
  17. 方差、标准差和协方差三者之间的定义与计算
  18. 用python打造一颗爱心
  19. 关于dm-0 dm-1
  20. 登东山而小鲁,登泰山而小天下

热门文章

  1. 15年研发经验博士手把手教学:从零开始搭建智能客服
  2. win7上怎么安装linux系统安装教程,怎么装系统双系统安装教程 win7 linux
  3. 2020年中国新基建人工智能产业链全景图深度分析汇总(附完整企业名单)
  4. CSDN送你一份春节压岁钱,请在 24H 内领取!
  5. 相邻数对和Python学习---多维缩减
  6. Redis 异地双活实战
  7. [深入研究4G/5G/6G专题-22]: 5G NR开机流程3.4 - MAC层对SIB1的调度 - SIB1消息的格式与内容
  8. IDEA的插件,IDEA强大的插件库
  9. Spring4实战读书笔记
  10. 微信小程序:点击图片进行预览