48.4. 1. CsvRecord


CsvRecord 주석은 모델의 루트 클래스를 식별하는 데 사용됩니다. 레코드 = CSV 파일의 한 줄이며 여러 하위 모델 클래스에 연결할 수 있습니다.

Expand
주석 이름레코드 유형level

CsvRecord

csv

클래스

Expand
매개변수 이름type정보

구분

string

mandatory - ',' 또는 ';' 또는 'anything'일 수 있습니다. 지원되는 유일한 공백 문자는 탭(\t)입니다. 다른 공백 문자(spaces)는 지원되지 않습니다. 이 값은 정규식으로 해석됩니다. 정규 표현식에서 특별한 의미가 있는 기호를 사용하려는 경우(예: '|')를 마스크해야 하는 것보다'|' 기호를 사용합니다.

skipFirstLine

boolean

선택 사항 - 기본값 = false - CSV 파일의 첫 번째 줄을 건너뛸 수 있습니다.

CRLF

string

선택 사항 - 가능한 값 = ECDHEDOWS,UNIX, MAC 또는 custom 값. ECDHEDOWS - 사용할 캐리지 반환 문자를 정의할 수 있습니다. 앞에 나열된 세 개 이외의 값을 지정하면 입력한 값(사용자 지정)이 CRLF 문자로 사용됩니다.

generateHeaderColumns

boolean

선택 사항 - default value = false - CSV에서 생성하는 헤더 열을 생성하기 위해 사용합니다.

autospanLine

boolean

Camel 2.13/2.12.2: 선택 사항 - default value = false -가 활성화된 경우 마지막 열은 행 끝에 자동으로 지정됩니다(예: 댓글이 포함된 경우).

isOrdered

boolean

선택 사항 - default value = false - CSV가 생성될 때 필드의 순서를 변경할 수 있습니다.

quote

문자열

Camel 2.8.3/2.9: option - CSV가 생성될 때 필드의 인용 문자를 지정할 수 있습니다. 이 주석은 모델의 루트 클래스와 연결되며 한 번 선언해야 합니다.

인용

boolean

*Camel 2.11:*optional - default value = false - CSV가 생성될 때 마샬링할 때 값(및 헤더)을 인용해야 하는지 나타냅니다.

endWithLineBreak

boolean

Camel 2.21: 선택 사항 - default value = true - CSV 생성 파일이 줄 바꿈으로 종료되어야 하는지 나타냅니다.

case 1 : 구분자 = ','

CSV 레코드의 필드를 분리하는 데 사용되는 구분자는 ','입니다.

10, J, Pauline, M, XD12345678, Fortis Dynamic 15/15, 2500,
USD,08-01-2009
@CsvRecord( separator = "," )
public Class Order {

}

case 2 : separator = ';'

이전 경우와 비교하여 여기서 구분자는 ',' 대신 ';'입니다.

10; J; Pauline; M; XD12345678; Fortis Dynamic 15/15; 2500; USD; 08-01-2009

@CsvRecord( separator = ";" )
public Class Order {

}

case 3 : 구분자 = '|'

이전 경우와 비교하여 여기서 구분 기호는 ';' 대신 '|'입니다.

10| J| Pauline| M| XD12345678| Fortis Dynamic 15/15| 2500| USD|
08-01-2009
@CsvRecord( separator = "\\|" )
public Class Order {

}

case 4 : separator = '\",\"'

Camel 2.8.2 이상에 적용됩니다.

CSV 레코드의 구문 분석 필드에 구분 기호로도 사용되는 ',' 또는 ';'가 포함된 경우, 이 케이스를 처리하는 방법을 알릴 다른 전략
을 찾습니다. 데이터가 포함된 필드를 쉼표로 정의하려면 구분자(예: '10', 'Street 10, 'USA', 'USA', "10", "Street 10,ECDHE", "USA")로 단순 또는 이중 따옴표
를 사용합니다.
참고: 이 경우 단순하거나 이중 따옴표인 줄의 첫 번째 및 마지막 문자는 바인딩에 의해 제거됩니다.

"10","J","Pauline"," M","XD12345678","Fortis Dynamic 15,15"
2500","USD","08-01-2009"
@CsvRecord( separator = "\",\"" )
public Class Order {

}

Camel 2.8.3/2.9 에서 바인딩되지 않으면 레코드가 단일 또는 이중 따옴표로 묶어 있는지 자동으로 탐지하고 CSV에서 Object로 미완성할 때 해당 따옴표를 자동으로 제거합니다. 따라서 구분 기호에 따옴표를 포함하지 말고 아래와 같이 단순해야 합니다.

"10","J","Pauline"," M","XD12345678","Fortis Dynamic 15,15"
2500","USD","08-01-2009"
@CsvRecord( separator = "," )
public Class Order {

}

Object에서 CSV로 마샬링하고 따옴표를 사용하려면 아래와 같이 @CsvRecord에서 quote 속성을 사용하여 사용할 인용 문자를 지정해야 합니다.

@CsvRecord( separator = ",", quote = "\"" )
public Class Order {

}

case 5: 구분자 & skipfirstline

클라이언트가 파일의 첫 번째 줄에 있고 데이터 필드의 이름을 원하는 경우 흥미로운 기능입니다.

주문 ID, 클라이언트 ID, 이름, 성, 성, isin 코드, 도구 이름, 수량, 통화, 날짜

구문 분석 프로세스 중에 이 첫 번째 행을 건너뛰어야 한다는 것을 바인딩에 알리려면 특성을 사용합니다.

@CsvRecord(separator = ",", skipFirstLine = true)
public Class Order {

}

case 6 : generateHeader DestinationRules

생성된 CSV의 첫 번째 줄에서 추가하려면 다음과 같은 주석에서 generateHeader DestinationRules 특성을 true로 설정해야 합니다.

@CsvRecord( generateHeaderColumns = true )
public Class Order {

}

결과적으로 Bindy during the unmarshaling process will generate CSV like this:

주문 ID, 클라이언트 ID, 이름, 성, 성, isin 코드, 도구 이름, 수량, 통화, 날짜

10, J, Pauline, M, XD12345678, Fortis Dynamic 15/15, 2500, USD,08-01-2009

케이스 7: 탄수화수 반환

camel-bindy가 실행되는 플랫폼이 Windows가 아니지만 Macintosh 또는 Unix가 아닌 경우 이와 같이 crlf 속성을 변경할 수 있습니다. 세 가지 값을 사용할 수 있습니다. ECDHEDOWS, UNIX 또는 MAC

@CsvRecord(separator = ",", crlf="MAC")
public Class Order {

}

또한 어떤 이유로든 다른 줄 끝 문자를 추가해야 하는 경우 crlf 매개변수를 사용하여 지정할 수 있습니다. 다음 예제에서는 쉼표로 뒤에 줄 바꿈 문자를 사용할 수 있습니다.In the following example, we can end the line with a comma followed by the newline character:

@CsvRecord(separator = ",", crlf=",\n")
public Class Order {

}

사례 8: isOrdered

경우에 따라 모델의 CSV 레코드를 생성하는 동안 따라야 하는 순서가 구문 분석 중 사용되는 순서와 다릅니다. 그러면 이 경우 isOrdered = true 속성을 사용하여 이를 DataField 주석의 'position' 속성과 결합하여 표시할 수 있습니다.

@CsvRecord(isOrdered = true)
public Class Order {

   @DataField(pos = 1, position = 11)
   private int orderNr;

   @DataField(pos = 2, position = 10)
   private String clientNr;

}

remark: pos는 파일을 구문 분석하는 데 사용되며, stream은 CSV를 생성하는 데 사용됩니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동