public class vcfTest {
private VCardEngine vcardEngine = null;// vcf engine,used to parse vcf
public vcfTest() {
vcardEngine = new VCardEngine();// initialization engine
vcardEngine.setCompatibilityMode(CompatibilityMode.RFC2426);// rfc mode
}
public void readVcfDir(String fname) {
File dir = new File(fname);// read vcf dir
FilenameFilter ff = new FilenameFilter() {
public boolean accept(File d, String fn) {
if (fn.endsWith(".vcf"))
return true;
return false;
}
};// filer bad vcf out
File[] vcfs = dir.listFiles(ff);// get all vcfs from dir
for (int i = 0; i < vcfs.length; i++) {
readVcf(vcfs[i]);
}
}
public void readVcf(File vcf) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(vcf), "UTF-8"));
String temp = br.readLine();
String s = "";
int M, Y, D;
while (temp != null) {// read vcf into string s
if (temp.startsWith(" ") || temp.startsWith("="))
s = s + temp.trim();
else
s = s + "\n" + temp.trim();
if (temp.trim().equals("END:VCARD")) {
break;
}
temp = br.readLine();
}
br.close();
VCard vcard = vcardEngine.parse(s);// parse vcf
String name = null;
if (vcard.getName() != null) {// get name
name = vcard.getName().getFamilyName().trim();
if (vcard.getName().hasGivenName())
name = name + " " + vcard.getName().getGivenName().trim();
}
// if (name == null || name.equals(""))
// name = vcf.getName().substring(0, vcf.getName().indexOf("."));
if (vcard.hasExtendedTypes()) {// get types starts with "X-"
Iterator<ExtendedFeature> extFeatures = vcard
.getExtendedTypes();
while (extFeatures.hasNext()) {
ExtendedFeature feature = extFeatures.next();
String featureName = feature.getExtensionName().trim();
String data = feature.getExtensionData().trim();
if (featureName.equalsIgnoreCase("X-BDAY")) {// birthday for
// example,etc.
String[] ymd = data.split("-");
if (ymd.length >= 3) {
Y = Integer.parseInt(ymd[0]);// year
M = Integer.parseInt(ymd[1]);// month
D = Integer.parseInt(ymd[2]);// day
}
}
}
}
System.out.println(name);// print names
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
public static void main(String[] args) {
new vcfTest().readVcfDir("C:\\Users\\Desktop\\1");// main function starts here
}
}
分享到:
相关推荐
java生成和创建联系人,解析联系人数据保存到数据库。如VCF等
【标题】"Cardme:不要不断地向朋友索要卡号,只需将它们存储起来即可!" 这个项目,Cardme,旨在解决人们在日常生活中频繁交换信用卡信息的问题。它提供了一个安全且便捷的方式来存储和分享信用卡信息,从而避免了...
8. **XML或JSON数据交换**:为了与其他系统交换名片信息,"cardme"可能支持XML或JSON格式的数据交换,这两种格式都是常见的数据交换标准。 9. **国际化与本地化**:考虑到全球用户的需求,"cardme"可能包含了支持多...
内容概要:本文提供了详细的MongoDB分片集群的搭建指导,涵盖了从环境准备、配置文件编写、副本集的建立、主节点的选择、配置服务器和数据分片服务器的配置到最后的路由节点的搭建与操作整个流程,以及对数据库的哈希与范围两种分片策略的应用介绍和具体命令执行。 适合人群:熟悉NoSQL数据库概念并对MongoDB有一定了解的技术人员,尤其是在大型数据管理和分布式数据库架构设计中有需求的开发者。 使用场景及目标:帮助技术人员掌握构建高效能、高可用性的MongoDB分片集群的方法,适用于处理大规模、实时性强的数据存储与读取场景。 其他说明:文中通过实例演示了每个步骤的具体操作方法,便于跟随文档实操,同时也介绍了可能遇到的问题及其解决方案,如在没有正确配置的情况下试图写入数据时出现错误等情况的处理。
CPPC++_嵌入式硬件的物联网解决方案blinker库与Arduino ESP8266 ESP32一起工作
CPPC++_逆向调用QQ Mojo IPC与WeChat XPlugin
CPPC++_现代活动指标
CPPC++_Xournal是一款手写笔记软件,支持PDF注释,使用C语言编写,支持GTK3,支持Linux,如Ubu
资源概述: 本资源提供了一套完整的学生实习管理系统解决方案,涵盖了前台小程序页面与后台管理系统两大模块。前台小程序页面设计简洁直观,用户可根据不同身份(学生或企业)进行登录。学生用户能够方便地浏览并投递感兴趣的实习岗位,而企业用户则能轻松发布实习信息,吸引优秀人才。后台管理系统功能全面,包括个人中心、首页、学生管理、教师管理、企业管理、招聘管理、评分管理以及实习管理等多个方面,为管理员提供了强大的数据管理和操作工具。 技术栈亮点: SSM框架:系统后台采用Spring、Spring MVC和MyBatis Plus(简称SSM)作为核心开发框架,确保了系统的稳定性、可扩展性和可维护性。Spring作为控制反转(IoC)和面向切面编程(AOP)的容器,为系统提供了强大的业务逻辑处理能力;Spring MVC则负责处理Web请求和响应,实现了前后端的分离;MyBatis Plus作为持久层框架,简化了数据库操作,提高了开发效率。 MySQL数据库:系统采用MySQL作为数据库存储解决方案,支持大数据量的存储和高效查询。 如有侵权请联系我删除,谢谢
微服务闪聚支付项目
博客链接 https://blog.csdn.net/weixin_47560078/article/details/143714557 文章从原理介绍出发,实现了 Rust 与 Java 的互调。利用 JNI 技术,可以充分发挥 Rust 的性能优势,同时保持 Java 的跨平台特性。这种技术组合适用于对性能要求较高的应用场景,如图像处理、数据分析和系统级编程等。
cppc++
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
分布式事务lcn
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
cppc++
安卓手机与电脑的socket通信源码
Anaconda:JupyterNotebook使用教程.docx