转载自 使用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文件,实现批量导入导出电话簿相关推荐

  1. 怎么接收layui上传的文件_layui 上传文件_批量导入数据UI的方法

    使用layui的文件上传组件,可以方便的弹出文件上传界面. 效果如下: 点击[批量导入]按钮调用js脚本importData(config)就可以实现数据上传到服务器. 脚本: /*** * 批量导入 ...

  2. Java实现文件批量导入导出实例(兼容xls,xlsx)

    <link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON"> &l ...

  3. 批量导入/导出Excel文件(Python+Matlab)

    简单整理了下批量导入/导出Excel的Python和Matlab代码. Matlab 连续数字型.xlsx文件(如file_1.xlsx, file_2.xlsx, file_3.xlsx) clc, ...

  4. [Excel知识技能] Txt文件数据批量导入Excel

    记录(日期: 2022/5/20) 在实际工作中,遇到过将Txt格式的数据导入到Excel中,为此特意记录以下操作过程,便于日后的回顾和学习 需要导入的文本文件如下图所示: Txt文本数据源 Site ...

  5. CATIA通过excel文件快速批量导入材料库

    CATIA通过excel文件快速批量导入材料库 在excel中编辑材料库,并保存,如图所示: 将MATLAB代码中的inputFilename改为材料库对应的文件名,运行代码(excel文件需要和MA ...

  6. AD域中如何批量导入导出账号

    本帖出现于51CTO论坛中,是一位网友自己的实际工作经历.是在AD域中如何批量导入导出账号.工作上有一个需求,需要批量的导入一些账号,并要求有一些属性,比如:部门,职位,分机等! 如果您有兴趣也可以去 ...

  7. CATIA批量导入导出数据到EXCEL

    CATIA批量导入导出数据到EXCEL 序言 一.EXCEL数据点批量导入到CATIA 二.CATIA数据点批量导入到EXCEL 三.VB批量输出点到EXCEL 序言 工作中,由于测量基准和建模基准不 ...

  8. android手机导出联系人,OPPO Reno如何批量导入/导出联系人?

    准备换新手机,怎么将联系人号码全部存到新机里呢?现在的手机都有导入/导出联系人的功能,很方便哦! OPPO Reno如何批量导入/导出联系人? 1.依次进入手机[设置]-[系统应用]-[电话本]-[导 ...

  9. Linux通用脚本---docker批量导入导出镜像

    在实际的运维工作中,总是免不了一些批量操作的事情,比如,批量添加用户,批量修改用户密码,批量创建文件夹,批量移动复制文件等等操作.如果都是手工操作的话,无疑是一个劳心费力的事情,因此,我们才需要编写脚 ...

最新文章

  1. 第二讲 词向量表示 word2vec
  2. iOS-应用沙盒结构分析
  3. boost::type_erasure模块实现类型安全的 printf的测试程序
  4. CentOS6安装Cisco模拟器Dynamips
  5. js替换问题replace和replaceAll
  6. Atitit atiuse软件系列
  7. 《人生效率手册》学习总结
  8. sqlh和mysql的区别_HSQL和MySQL的区别
  9. linux开机出现repaire filesystem
  10. 语音文件aac-raw-wav格式转换方法
  11. python爬虫更改ip_怎么更改电脑ip地址?基于 Python 爬虫的ip修改设计与实现
  12. 图像的采样、频谱和分辨率
  13. Git学习笔记之三:Git 工作区、暂存区和版本库
  14. 干货满满的 GopherChina2021 北京大会 PPT is coming
  15. 排序层-深度模型-2015:AutoRec【单隐层神经网络推荐模型】
  16. 1恢复 群晖raid_群晖raid5数据恢复(一看就会的恢复软件)
  17. Android 文件夹介绍
  18. 加公民在华被捕荷兰发声 中使馆:请尊重中国司法主权
  19. 测试前如何进行配置项测试?
  20. VC++操作Excel 2007

热门文章

  1. [设计模式]单例模式(懒汉式,饿汉式)
  2. C++未定义行为-数组越界
  3. And Then There Was One POJ - 3517(变形约瑟夫环+规律)
  4. 用java做一个模拟彩票程序_JAVA模拟----- 彩票机子-----抽奖过程的实例化
  5. 量子力学问题matlab求解,一个关于量子力学中的matlab的问题
  6. 怎么创建dllwenjian_如何创建和使用dll及lib文件
  7. ARC114E - Paper Cutting 2(组合数学,概率与期望)
  8. CF914G Sum the Fibonacci(FWT模板+子集卷积)
  9. 洛谷P3270:成绩比较(容斥、组合数学)
  10. ARC132D-Between Two Binary Strings【贪心】