2020. 5. 22. 18:19ㆍJAVA
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을 리턴
'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 |