본문 바로가기

dev/자바

csv parsing lambda stream

자바에서 csv 파일 파싱하는 방법은 여러 가지가 있는데

 

그중에 람다와 스트림을 사용하는 방법이 있습니다.

 

파싱 할 csv 파일은 공공데이터 포털에서 받은 "서울시 지하철호선별 역별 승하차 인원.csv" 파일입니다.

 

서울시 지하철호선별 역별 승하차 인원.csv 파일

 

사용일자, 호선명, 역명, 승차총승객수, 하차총승객수, 등록일자로 구성된 csv 파일입니다.

 

MetroInfo 클래스

 

지하철 정보를 저장할 MetroInfo 클래스입니다.

 

csv 파싱 예제 코드

 

csv 파싱 예제 코드에 대해 설명하면

 

14~15라인: try-with-resources를 사용하여 FileReader, BufferedReader 객체의 close를 자동호출 처리

                   FileReader, BufferedReader 둘 다 AutoCloseable 인터페이스 구현 클래스

 

17~29라인: Cosumer 람다 표현식을 사용하여 csv 파일 1줄을 콤마 기준으로 split 처리한 뒤 MetroInfo 객체 생성 및 toString으로 표출

 

31라인: csv 파일 첫 번째 라인 생략하기 위해 BufferedReader 객체 readLine 메소드 호출

 

32라인: BufferedReader 객체가 1줄씩 읽은 데이터를 스트림으로 변환한 뒤 Cosumer에 전달

 

이렇게 작성되어 있습니다.

 

출력 결과

 

예제 코드를 실행하면 위와 같이 파싱처리가 잘 된 것을 확인할 수 있습니다.

 

csv 파일 뿐만 아니라 json 파일도 이런식으로 하면 쉽게 파싱할 수 있습니다.

'dev > 자바' 카테고리의 다른 글

Java List Stream  (0) 2023.08.29
Comparator&Comparable 인터페이스  (0) 2023.06.20
Domain 객체 메모리  (0) 2023.05.18
Java Builder 패턴  (0) 2023.05.17
네이버 메일 SMTP  (0) 2023.05.15