使用cardme读写VCard文件,实现批量导入导出电话簿
轉載自?使用cardme讀寫VCard文件,實現批量導入導出電話簿
首先下載jar包cardme。
http://sourceforge.net/projects/cardme/?source=navbar
cardme是基于java語言的操作vCard(后綴vcf)文件的開源項目。
在項目中有一個類net.sourceforge.cardme.engine.TestParser。是官方給的example。
先來梳理幾個基本概念
VCardEngine:主要用于從字符、文件中格式化或讀取VCard數據,并轉換為VCard對象。
VCardWriter:主要用戶把VCard對象裝換為字符,方便寫入文件。很難理解的是沒有VCardReader對象。而VCardEngine對象卻做著VCardReader對象的事兒。
VCard:可以理解為名片。定義了名片的基本協議(接口)。
VCardImpl:名片的實現類。
VCardType:名片的數據。名片的數據都是有類型的比如電話TelType,名字NameType,地址AdrType
基本概念理解了。我們來看看如何使用這些API
第一個需求讀取
會使用到VCardEngine類主要有如下API
parse:是一個方法,方法含義為:從一個文件(或字符)中讀取(格式化)VCard對象。如果參數是一個數組,那么多久返回一個VCard對象數組
parseMultiple:也是一個重載方法。含義為從一個文件(或字符)中讀取(格式化)多個VCard對象。
讀取接口很簡單。只要理解了上面的幾個基本概念,就完全沒有問題了。
第二個需求寫入
在TestParser中只是把VCard對象轉換為了字符。并沒有寫入文件,也沒有就VCardType做任何example。
VCardWriter writer = new VCardWriter(VCardVersion.V3_0, CompatibilityMode.RFC2426);//用戶把VCard轉換為字符
FileWriter fw = new FileWriter(new File("F:/tel/0.vcf"));//把VCard數據(字符)寫入文件
VCardImpl vc = new VCardImpl();//創建一個名片
//設置名片名字(FNType)。Sets the FN type. This type must be set in the VCard and cannot be omitted, it can however be left with all empty values.文檔說這個值必須設置,不能忽略。
vc.setFN(new FNType("張三");
//給名片添加一個電話號碼。名片是可以有多個號碼的
vc.addTel(new TelType("13888888888"));
writer.setVCard(vc);
String str = writer.buildVCardString();//把名片對象轉化為字符
fw.append(str);//寫入文件
fw.flush();
fw.close();
對于VCard重點在于理解其VCardType的含義。我的理解為名片上的數據,不同的數據對應不同的VCardType實現。
總結
以上是生活随笔為你收集整理的使用cardme读写VCard文件,实现批量导入导出电话簿的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 地板用英语怎么说 地板英语解释
- 下一篇: 孔夫子搬家歇后语是什么意思 孔夫子搬家歇