手机增加了个联通卡,想在之前的e71上用移动卡,于是涉及到把iphone的通信录转移到e71上去,之前都晓得从iphone上导出为vcf格式,然后放入到e71的存储卡的其他/通信录这个目录下即可。我先用的91助手导出iphone的通信录为vcf,然后发现e71导入为乱码,仔细对比为文中的字符编码问题。又用itools导出iphone通信录发现字符编码问题没有了,但是itools出来的是一个整体的vcf文件,这样e71还是导入不完整,于是想办法从itools导出的vcf中分离出来,根据vcf的格式,写了个简单java代码如下进行分割,然后一起复制到e71的存储卡对应位置即可了。代码如下:
public static void main(String[] args) throws Exception {
String path = "c:\\Contacts.vcf";
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path), "utf-8"));
String str = "";
StringBuffer sb = new StringBuffer();
int i = 0;
while((str = br.readLine()) != null) {
i++;
sb.append(str).append(System.getProperty("line.separator"));
if(str.trim().equals("END:VCARD")) {
// 写入文件
FileOutputStream fos = new FileOutputStream("c:\\TEL\\"+i+".vcf");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
osw.write(sb.toString());
osw.flush();
sb = new StringBuffer();
}
}
System.out.println("end...");
}