Android Sqlite 导入CSV文件
2015-08-05 19:45
302 查看
[原]Android Sqlite 导入CSV文件
2012-3-30阅读7284 评论4今天遇到 Oracle 导出的12万条CSV格式数据导入 Android Sqlite 中 ,整个流程记录下,分享一下,因为处于考虑数据保密问题,下列数据都为 Demo 数据。
1、首先需要将 CSV 文件处理下字符集的问题 ,众所周知 sqlite 默认字符集 UTF-8 ,涉及中文的地方如果不设置那么导入sqlite的数据将会乱码。
右键选择 CSV 文件,打开方式为 记事本 ,将会看到如下数据
![](http://my.csdn.net/uploads/201203/30/1333119330_9870.png)
需要将第一行列去除,然后将分号 ” 同时去掉,最终结果为
![](http://my.csdn.net/uploads/201203/30/1333119455_5669.png)
下面这步最重要,将文件另存为,最下方 编码 选择 UTF-8 ,然后另存到 C 盘根目录即可。
![](http://my.csdn.net/uploads/201203/30/1333120150_7059.png)
2、因为PC没有安装 sqlite ,所以这里将 sqlite 操作交给 Android 手机来处理。
首先将 数据压入 Android 手机 sd 卡中
C:\Users\John>adb push c:/employee.csv /mnt/sdcard 0 KB/s (89 bytes in 0.191s)
使用 adb 命令连接手机,进入 sd 卡目录
C:\Users\John>adb shell $ cd /mnt/sdcard/ cd /mnt/sdcard/
使用 sqlite3 创建 mydata.db 数据库,如不指定路径,那么 sqlite3 将会默认将数据库文件创建运行 sqlite3 的目录中,建表语句可以从 oracle 中复制即可。建表完毕,可以使用 .ta 命令查看新建表是否成功。
$ sqlite3 mydata.db sqlite3 mydata.db SQLite version 3.6.22 Enter ".help" for instructions sqlite> create table EMPLOYEE(xh VARCHAR2(60),xm VARCHAR2(100),bm VARCHAR2(100),dz VARCHAR2(200)); create table EMPLOYEE(xh VARCHAR2(60),xm VARCHAR2(100),bm VARCHAR2(100),dz VARCHAR2(200)); sqlite> .ta .ta EMPLOYEE
3、导入 csv 数据文件到新建的 employee 表中 ,需要做点准备工作。因为 csv 默认数据分割符为逗号 “,” 而 sqlite 默认数据分割符为 “|” ,先用 .show 命令确认下,然后再改,当然也可以先改 然后再用 .show 来查看,运行 sqlite 命令一定要注意他自身命令都是要 点
开头滴。
sqlite> .show .show echo: off explain: off headers: off mode: list nullvalue: "" output: stdout separator: "|" width: sqlite> .separator "," .separator ","
4、上述准备工作做好之后,就可以正式导入数据。
.import //导入命令
/mnt/sdcard/employee.csv //csv文件路径
employee //csv文件导入指定表
sqlite> .import /mnt/sdcard/employee.csv employee .import /mnt/sdcard/employee.csv employee
展示结果,OK 没啥问题。
sqlite> select * from employee; select * from employee; "XH","XM","BM","DZ" "1","王轩宇","研发部","山东青岛" "2","王云汐","运营部","山东青岛"
相关文章推荐
- Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0
- Android、iPhone和Java三个平台一致的加密工具
- android如何获取以太网mac地址
- 解决android studio编译很慢(整合解决方案)
- windows下用cygwin编译android版ijkplayer
- Android Fragment 真正的完全解析(上)
- Android Fragment 真正的完全解析(下)
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- Android学习5——控件分类
- Android侧滑菜单实现
- 简单粗暴的对android so文件加壳,防止静态分析
- 深入讲解Android Property机制
- Android EditText聚焦时hint消失的简单代码
- fragment findViewById()返回null完全解析
- 为nexus5编译ubuntu14.04TLSx64(android4.4.4 r1+kernel)
- Android_开源库_基于百分比的布局android-percent-support-lib-sampleAndroid
- Android中Activity四种启动模式和taskAffinity属性详解
- Android-Intent与Bundle在传值上的区别
- Android 操作SQLite基本用法
- Android Studio自动补全功能