AndroidStudio|读取SD卡中的sqlite数据
- 从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;}@Overridepublic void onOpen(SQLiteDatabase db) {super.onOpen(db);}@Overridepublic void onCreate(SQLiteDatabase db) {}@Overridepublic 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;
}
}
- 查询数据,将数据转成图片:
- 数据库数据
AndroidStudio|读取SD卡中的sqlite数据相关推荐
- android 读取sd卡中的图片
一.获取读取SD卡的权限 <!--在SDCard中创建与删除文件权限 --><uses-permission android:name="android.permissio ...
- Android 读取SD卡中文件以及内存使用情况
android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,例如通过实例化一个StatFs对象 new StatFs(path.getPath())把SD卡根目录 ...
- 单片机读取SD卡中BMP图片文件并送往TFT彩屏上显示(测试成功)(二)
二.软件部分 软件中INI_FLAG为设置的一个标志位,通过置1该位可以控制发送或接受数据速度.因为在初始化阶段SD卡操作需要适当放缓,而初始化成功后可以加快数据传动速率. 1>往SD卡写一个字 ...
- android编程读取sd卡txt文件,如何读取SD卡中的txt文件?
我有一个自定义ListView,代码如下.而不是写作: "http://yoursite.com/image1.png","http://yoursite.com/ima ...
- android 读取sd卡中string.xml,android,从SD卡读取xml文件中的值
helo,我想从这个文件中读取值:http://www.nbp.pl/kursy/xml/lastC.xml并用它们填充网格.我的应用程序下载此文件并将其保存在SDCard earch运行时间.我的问 ...
- 怎么保证SD卡中的数据与物理SD卡绑定 防止SD卡中数据被复制到电脑上
转载请标明是引用于 http://blog.csdn.net/chenyujing1234 欢迎大家拍砖 一.应用背景 SD卡中存有我们的导入数据文件data.bat,SD卡要插入到WinCE系统,为 ...
- FPGA 读取SD卡图片数据(top_sd_photo)
一.SD卡介绍 传送门:https://blog.csdn.net/qq_39507748/article/details/113195336 初始化以及读写操作的流程文章中也有说到. 二.实验内容 ...
- linux sd卡中文件多时读写,数据存储与访问之——文件存储读写
1.Android文件的操作模式 在java中要想对文件做读写操作,只需创建 文件,读写数据即可,Android却是不同,android基于Linux,在读写文件的时候,还需要加上文件的操作模式. 文 ...
- Android 扫描SD卡中的所有视频文件
Android应该是已经把所有的视频文件音频都在开机时,扫描完毕然后存在本地SQLite数据库了,因此,我们"扫描"的最简单方法是读取这个已经存储好的数据库.但是这样做,在程序开启 ...
最新文章
- linux下获取线程号
- python随机数比大小_1到范围内的随机数系统最大大小总是1模2^10
- linux 计算集群搭建,使用centos构建服务器计算集群
- 个人博客代码_Jekyll + Github Pages 搭建个人免费博客
- 浅谈高并发系统性能调优
- vue-slicksort拖拽组件
- centos 7配置rsync源服务器
- PropertyGrid类别排序
- windows端口被占用及广告弹窗处理
- 台式计算机模拟软件,仿真软件 计算机仿真模拟常用软件有那些?
- QTTabBar安装后不生效
- xshell通过隧道连接_如何在xshell中创建一个SSH隧道
- 【语言小知识】-java中将 两个int[] 型数组 整合到一起的方法
- Oracle - CentOS7.4 静默安装Oracle11g
- 微信公众号怎么生成能追踪效果的二维码?
- MySQL 存储过程笔记
- 方差、标准差和协方差三者之间的定义与计算
- 用python打造一颗爱心
- 关于dm-0 dm-1
- 登东山而小鲁,登泰山而小天下
热门文章
- 15年研发经验博士手把手教学:从零开始搭建智能客服
- win7上怎么安装linux系统安装教程,怎么装系统双系统安装教程 win7 linux
- 2020年中国新基建人工智能产业链全景图深度分析汇总(附完整企业名单)
- CSDN送你一份春节压岁钱,请在 24H 内领取!
- 相邻数对和Python学习---多维缩减
- Redis 异地双活实战
- [深入研究4G/5G/6G专题-22]: 5G NR开机流程3.4 - MAC层对SIB1的调度 - SIB1消息的格式与内容
- IDEA的插件,IDEA强大的插件库
- Spring4实战读书笔记
- 微信小程序:点击图片进行预览