首先下載jar包cardme。java
http://sourceforge.net/projects/cardme/?source=navbar 數組
cardme是基於java語言的操做vCard(後綴vcf)文件的開源項目。app
在項目中有一個類net.sourceforge.cardme.engine.TestParser。是官方給的example。ui
先來梳理幾個基本概念spa
VCardEngine:主要用於從字符、文件中格式化或讀取VCard數據,並轉換爲VCard對象。.net
VCardWriter:主要用戶把VCard對象裝換爲字符,方便寫入文件。很難理解的是沒有VCardReader對象。而VCardEngine對象卻作着VCardReader對象的事兒。對象
VCard:能夠理解爲名片。定義了名片的基本協議(接口)。接口
VCardImpl:名片的實現類。ip
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實現。