代码地址见本文最后。
因为特殊原因,更换了通讯工具,需要将原聊天消息进行备份,并能进行浏览或者查询。
发现QQ消息可以导出mht格式的消息,这种文件格式内部其实就是讲html、css、图片(图片是经过base64转换)按照一定规律全部写入到mht文件中的,只要按照规律解析即可。
在解析的过程中,如果是文件体积比较大,就需要考虑进行分页,否则生成的html文件很大,我遇到解析后最大的单html文件达到了500M(导出全部消息),浏览起来很不方便,因此增加了分页功能。
首先上效果:
1.将程序放到mht文件所在文件夹。
程序会自动查询当前文件夹的mht文件,并进行转换,最后将文件保存到mht同名的文件夹中。
2.双击运行run.bat文件,可选分页。
注意:在mht文件小于100M的情况下,即使选择了分页,程序不会也不会进行分页。
3.预览效果
部分代码解析:
1.生成单文件html
/**
* 创建单文件html
* @param inputFile
* @param outputFilePath
*/
public static void readAndCreateFile(String inputFile, String outputFilePath) {
String htmlFileName = parseHtmlFileName(inputFile);
File file = new File(inputFile);
BufferedInputStream fis = null;
BufferedReader reader = null;
try {
fis = new BufferedInputStream(new FileInputStream(file));
reader = new BufferedReader(new InputStreamReader(fis,"utf-8"),5*1024*1024);
boolean isCreatedHtml = false, isHtmlContent = false;
String line = "";
StringBuilder sb = null;
//String [] resType = null;
String resName = null;
//boolean isGetResType = false;
boolean isGetResName = false;