有没有办法使用cardme从一个文件中读取多个vcard?根据此处显示的示例,这似乎是不可能的。
问问题
1278 次
3 回答
2
我不知道 parseMultiple() 方法是否比这篇文章更新,但这实际上可以在我使用的版本(v0.3.3)中实现。
这是一个遍历 Files 数组的方法,其中每个文件可能有多个 vcard,并将所有读取的 VCard 添加到列表中。
public List<VCard> importVCards() {
List<VCard> vcards = new ArrayList<VCard>();
vcardFiles = getFiles();
for(int i = 0; i < vcardFiles.length; i++){
try {
vcards.addAll(vcardEngine.parseMultiple(vcardFiles[i]));
}
catch(IOException ioe) {
System.err.println("Could not read vcard file:
"+vcardFiles[i].getAbsolutePath());
ioe.printStackTrace();
}
}
return vcards;
}
卡梅可以在这里找到:https ://github.com/george-haddad/cardme
于 2012-06-26T07:29:03.667 回答
2
没有内置方法可以做到这一点。您可以逐行迭代文件,直到END:VCARD
然后使用该方法VCardEngine.parse(String)
逐个读取每个VCard。
像这样的东西可能会起作用:
BufferedReader buffer = new BufferedReader(new FileReader("allcards.txt"));
VCardEngine engine = new VCardEngine();
StringBuilder builder = new StringBuilder();
List<VCard> vcards = new ArrayList<VCard>();
String line;
while ((line = buffer.readLine()) != null) {
builder.append(line);
if (line.contains("END:VCARD")) {
VCard vcard = engine.parse(builder.toString());
vcards.add(vcard);
builder = new StringBuilder();
}
}
于 2012-04-08T19:08:44.340 回答
0
Cardme 版本 0.3.3 已发布,支持从 1 个文件解析多个 vcard。你可以在这里下载它http://sourceforge.net/projects/cardme/files/Cardme/Card%20Me%20Version%200.3.3/
于 2012-05-10T15:19:17.167 回答