2012-04-08 2 views
0

cardme을 사용하여 하나의 파일에서만 여러 vCard를 읽는 방법이 있습니까? 보기에 따르면 here이 가능하지 않은 것으로 보입니다.cardme을 사용하여 하나의 파일에서 여러 개의 vcards 읽기

+0

은 그 안에 여러 vCard를 포함 된 파일을 구문 분석의 예를 포함하도록 cardme 위키 사이트를 업데이트에서 튜토리얼의에서 예제 cardme에서 수정 된 버전이 제공됩니다. –

답변

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

정말 고마워요. – robodasha

2

parseMultiple() 메소드가이 게시물보다 최신인지 모르겠지만 실제로는 (v0.3.3)을 사용하는 versión에서 가능합니다.

각 파일에 여러 vcards가있는 파일 배열을 반복하는 메서드가 있으며 읽기 된 모든 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; 
} 

이 코드는 http://dma.pixel-act.com/#tutorialBox

관련 문제