2014-04-13 3 views
0

제목과 마찬가지로 한 번에 두 개의 파일을 읽을 수있는 수퍼 CSV 가능성이 있습니다. 아래의 코드는 하나 file.csv 대한 예를 보여Super CSV에서 한 번에 두 개의 파일을 읽을 수 있습니까?

public class Reading { 
    private static final String CSV_FILENAME1 = "src/test/resources/test1/customers.csv"; 
    public static void partialReadWithCsvMapReader() throws Exception {  
     ICsvMapReader mapReader1 = null; 
     try { 
      mapReader1 = new CsvMapReader(new FileReader(CSV_FILENAME1), CsvPreference.STANDARD_PREFERENCE);    
      mapReader1.getHeader(true); 
      final String[] header = new String[] { "customerNo", "firstName", "lastName", null, null, null, null, null, 
       null, null, "TOMEK" }; 
      final CellProcessor[] processors = new CellProcessor[] { new UniqueHashCode(), new NotNull(), 
       new NotNull(), new NotNull(), new NotNull(), new Optional(), new Optional(), new NotNull(), 
       new NotNull(), new LMinMax(0L, LMinMax.MAX_LONG), new NotNull()};   
      Map<String, Object> customerMap; 
      while((customerMap = mapReader1.read(header, processors)) != null) { 
       System.out.println(String.format("lineNo=%s, rowNo=%s, customerMap=%s", mapReader1.getLineNumber(), 
        mapReader1.getRowNumber(), customerMap)); 
      } 
     } 
     finally { 
      if(mapReader1 != null) { 
       mapReader1.close(); 
      } 
     } 
    } 

} 

한 용액은 제 2 가변 CSV_FILENAME2 선언하는 것이다 등등

private static final String CSV_FILENAME1 = "src/test/resources/test1/customers.csv"; 

하고, 그러나 다른 가능성이 있는가? 감사.

+0

"즉시 사용"이란 무엇입니까? 동시에? 순차적으로? 당신은 입력으로 무엇을 가지고 있으며 출력으로 무엇을 원합니까? –

답변

0

CsvReaderReader (생성자 인수로 전달됨)에서 읽을 수 있습니다. 즉, CsvReader 당 하나의 CSV 파일 만 읽을 수 있습니다.

JB Nizet이 언급 한 것처럼 - 당신은 정말로 '한 번에'의미하는 것을 정의해야합니다. 그러나 그것이 동시에, 순차적으로 또는 다른 것이 든간에 여전히 CsvMapReader의 두 인스턴스가 필요합니다.

파일을 함께 처리해야합니다 (예 : 2 개의 CSV 파일을 1로 결합). 아니면 일반적으로 여러 파일을 처리하는 방법을 찾고 있습니까?

+0

"파일을 함께 처리해야합니다 (예 : 2 개의 CSV 파일을 1로 결합)."-> 예 이런 식으로 보입니다. – user3455638