ios版qq聊天记录的导出
来源:互联网 发布:indexof 数组 编辑:程序博客网 时间:2024/05/01 02:30
我所使用的平台:
Mac OS X Lion 10.7.2
用到一些东西:
0。iExplorer.app
用于将保存这聊天数据的 sqlite 数据库文件导出到电脑里面,
该数据库的所在位置为(模糊掉的是qq号):
将这个db文件导出到电脑里面,然后修改后缀为 .sqlite
之前试的时候我也不知道这个 .db 文件就是修改了后缀名的 sqlite 数据库文件。
但一想到 ios 平台里面的数据库也差不多就 sqlite 了,便改后缀试试运气,果不其然~
说到这点要鄙视一下 ios qq 开发组的粗心大意啊,如果我来做的话,
会把保存着聊天记录的 sqlite 数据库文件至少用个除 db 外的其他后缀吧?db太惹眼了。
或者是将数据库文件伪装成声音文件,每次作修改之后都不对数据库文件的 lastModified 属性做修改,
我想,再要找出这个数据库文件的话,那难度上就要增大很多~
1。FireFox 的 SqliteManager 插件
SqilteManager 主要用于将导出到电脑里面的 sqlite 数据库文件解析出来,
不知道是 sqlite 本身的局限,还是因为其他的原因,
我发现 sqlite 里面的数据好像都是明文的,难道不能做一做加密处理?
再一次鄙视一下ios 版 qq 的开发者~
如上,明文的啊,一切都简单化了啊,上张图看一下数据表里面的聊天记录吧:
点 Actions 下拉列表,选择 “Save Result(CSV) to File” 即可将感兴趣的聊天记录导出为 csv 文件。
csv 文件可由 excel 打开,不过有点儿问题,打开之后发现里面的内容全部都是乱码,
对 excel 不是很熟悉,不知道哪里能够调整字符编码,所以就不纠结在这个问题上面了。
ok,既然不能指望 excel 了,那么祭出程序猿的看家本领,用 java 来弄吧
2。opencsv
在网上找了一些资料,发现了java 解析 csv 文件的一个开源框架——opencsv
sourceforge.net 上面能够下载 到 2进制 jar 包,到时候在编写解析程序的时候要用到。
3。eclipse
回归老本行,直接上代码:
package org.bruce.vertices.extra.csv;import java.io.File;import java.io.FileReader;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import au.com.bytecode.opencsv.CSVReader;/** * @author Bruce Yang * 在用 SQLiteManager 将聊天记录表保存为 csv 文件的时候,使用如下的 SQL 查询: * select uin,time,content from tb_message where uin=123456(你所感兴趣的qq号码)~ * 生成的txt三行为一个单元,第一行是qq号码,第二行是消息发出的时间,第三行是消息内容, * 单元与单元之间用空行做分隔~ */public class TestOpenCSV {/** * @param csvPath * @return * @throws Exception */public static List<String[]> getLines(String csvPath) throws Exception {File f = new File(csvPath);if(!f.exists()) {System.out.println("文件不存在~");return null;}CSVReader csvReader = new CSVReader(new FileReader(f));List<String[]> lines = csvReader.readAll();csvReader.close();return lines;}/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {List<String[]> result = getLines("/Users/user/Desktop/output.csv");if(result == null) {System.err.println("目标 csv 文件的路径无效,请查证~");}SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");for(int i = 0; i < result.size(); ++ i) {String[] item = result.get(i);for(int j = 0; j < item.length; ++ j) {if(j == 0) {System.out.println("QQ号:" + item[j]);} else if(j == 1) {// 将时间的格式转换地漂亮一点(竟然将最后三位截除了,得追加回来)~long time = Long.parseLong(item[j] + "000");Date date = new Date(time);System.out.println("时间: " + sdf.format(date));} else if(j == 2) {System.out.println("消息:“" + item[j].trim() + '”');}}System.out.println();}}}
生成的纯文本文件:
QQ号:123456时间: 2012-03-03 20:00:36消息:“哎”QQ号:123456时间: 2012-03-03 20:00:41消息:“你先写代码啊”QQ号:123456时间: 2012-03-03 20:00:45消息:“搞完了喊你?”QQ号:123456时间: 2012-03-03 20:00:47消息:“怎么样”QQ号:123456时间: 2012-03-03 20:00:50消息:“哦,行”QQ号:123456时间: 2012-03-04 12:09:59消息:“速度 啊”QQ号:123456时间: 2012-03-04 12:10:02消息:“狗的”
收工~
- ios版qq聊天记录的导出
- ios 版 qq 聊天记录的导出
- VC写的手机qq聊天记录导出工具
- QQ导出的txt聊天记录导入数据库方法
- 特定用户QQ群聊天记录导出的实现
- 用Python3对QQ导出的文本聊天记录进行整理。
- QQ群的一次聊天记录
- QQ聊天记录的存储格式
- QQ聊天记录的保存位置
- 删除Mac版QQ聊天记录
- QQ聊天记录
- QQ聊天记录
- QQ聊天记录
- QQ聊天记录
- 怎样才能查看爱人的微信聊天记录QQ聊天记录
- qq 修改聊天记录位置的办法
- QQ医生查不出的聊天记录软件
- 如何导入以前的qq聊天记录
- 电脑桌面去除系统快捷方式箭头
- Java六大必须理解的问题
- 获得指定文件目录晓得文件名和目录名,以及过滤
- sqlite c库使用
- 解道。。。好网站
- ios版qq聊天记录的导出
- 初学 Java Web 开发,请远离各种框架,从 Servlet 开发
- SurfaceView和View最本质的区别(转)
- Linux操作系统在ARM上 的移植过程及分析
- DZ2 无法DIY的解决办法
- org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFacto
- 黑马程序员--多线程(三)之线程停止
- SAP 常用查看库存的T-CODES
- ZooKeeper四字命令