2012-04-08 8 views

答えて

2

これを行う方法はありません。 END:VCARDまでファイルを1行ずつ繰り返してから、方法VCardEngine.parse(String)を使用して各VCardを1つずつ読み取ることができます。

このような何かが働く可能性があります

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(); 
    } 
} 
+0

ありがとう、それは働いた! – robodasha

2

parseMultiple()メソッドがこの投稿より新しいかどうかわかりませんが、これは実際に私が使っているバージョン(v0.3.3)で可能です。

各ファイルに複数のvcardsがあり、読み込まれたすべてのVCardがリストに追加されるFiles配列を反復処理するメソッドです。

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; 
} 

このコードはcardmeがそれに提供する実施例から変更されたバージョンであるhttp://dma.pixel-act.com/#tutorialBox

関連する問題