CSV(Comma - Separated Values)

2020. 5. 22. 18:19JAVA

CSV(Comma - Separated Values)

-> 콤마를 가지고 데이터를 구분해서 표현하는 방식

콤마만 가지고 하다가 최근에는 공백, 탭, 엔터 등을 이용하기도 함.

-> 일정한 간격을 가지고 데이터를 구분하면 fwf(Fixed Width file)이라고 함.

-> 구분자를 데이터로 사용하고자 하는 경우에는 ' ' 감싸면 됨.

-> 변하지 않는 데이터를 제공해주고자할 때 많이 사용하는 포맷임.

-> split 메소드를 이용해서 직접 파싱하는것도 가능하지만 대부분 외부 라이브러리를 이용함.

-> java의 csv관련 외부라이브러리로 많이 사용되는 것은 Super CSV임

 

1) 한 줄의 데이터를 저장할 DTO클래스 생성


csv 파일을 읽어내는 방법

CsvBeanReader 인스턴스를 생성: 매개변수로 csv파일의 Reader 객체와 환경 설정 옵션을 대입

CsvBeanReader ? = new CsvBeanReader(new BufferedReader(new InputStreamReader(new FileInputStream(파일경로))),CsvPreferences.STANDARD_PREFERENCE);

 

- 헤더 만들기: DTO 클래스의 프로퍼티 이름과 같아야 함.

String[] 헤더 = {직접 작성};

?.getHeader(true); // csv파일의 첫번째 행이 열 이름일때만 가능

 

데이터 읽어오기

제약조건을 생성 - 각 열의 제약조건 설정

필수: new NotNull()

선택: new Optional()

정수: new ParseInt()

CellProcessor [] 제약조건배열 = new CellProcessor[] {

 

};

 

앞에서 만든 reader객체.read(DTO클래스.class, 열이름배열, 제약조건)을 호출하면 DTO클래스의 인스턴스를 순서대로 리턴하는데

더 이상 읽을 데이터가 없으면 null을 리턴

 

무제.csv파일에서 데이터 읽어오기(DTO클래스 따로 생성함)

 

'JAVA' 카테고리의 다른 글

Maven, JavaDoc, CheckStyle, JUnit  (0) 2020.05.22
JDBC  (0) 2020.05.12
팰린드롬(토마토,스위스,기러기) 확인하기  (0) 2020.05.08
10진수 정수를 2진수 10자리로 표현하기~  (0) 2020.05.08
Open API  (0) 2020.05.04