😎 CSV 읽고 쓰고 파일 만들고 😎

2021. 7. 10. 11:44·개발중/Spring Boot
728x90
반응형

사용자에게 확장자 csv 파일을 받는다.

받은 csv 파일의 형식은 두 가지 형식일 수 있다.

  • CSV UTF-8(쉼표로 분리)(*.csv)
  • CSV (쉼표로 분리)(*.csv)

나는 사용자가 둘 중에 어떠한 파일을 올리던 "CSV (쉼표로 분리)(*.csv)" 파일을 내 PC 경로에 올려야 한다.


😈 사용자가 CSV UTF-8(쉼표로 분리)(*.csv) 파일을 업로드 한다.

 


😈 사용자가 올린 파일이 MultipartFile file 에 담겨 있다고 가정.

 

MultipartFile file = 사용자가 업로드 한 CSV


😈 file 을 읽어 온다.

 

더보기

csvText 에는 실질적으로  csv 파일에 저장 될 text 가 저장되는데

 

 - 각 셀은 "," 로 구분해 주고

 - 다음 행 입력 시 "\n" 로 구분 합니다.

 

 예를 들어서 이렇게 저장하면  아래처럼 저장이 된다.

csvText ="라벨,텍스트\nA,안녕\nB,메롱\nC,아아\nD,커피E,케잌\nF,엄마\nG,아빠"

 

InputStreamReader isr = new InputStreamReader(file.getInputStream());
BufferedReader reader = new BufferedReader(isr);

String csvText = "";
String lineText = "";


while ((lineText = reader.readLine()) != null){ 
    csvText += ( lineText + "\n" );
}


😈 업로드 할 경로와 파일명은 uploadFilePath 에 넣어주기

 

String uploadFilePath ="C:\coding\excelTest\TrainData_54.csv";

 

BufferedWriter bw = null;

try {
    bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(uploadFilePath), "MS949"));
    bw.write(csvText);
} catch (IOException e) {
    throw e;
} finally {
    bw.close();
}


근데 이 방법이 대용량도 가능 할 지는 모르겠다.

제발 가능해라 😣


728x90
반응형
저작자표시 (새창열림)

'개발중 > Spring Boot' 카테고리의 다른 글

new -> autowrite 생성자 이해하기  (0) 2021.08.14
classpath 경로 가져오기  (0) 2021.07.10
[스프링] 액셀 문서 업로드 - 이름 변경  (0) 2021.07.06
스프링 - zip 파일 다운로드  (0) 2021.07.05
JPA 공부하기  (0) 2021.06.23
'개발중/Spring Boot' 카테고리의 다른 글
  • new -> autowrite 생성자 이해하기
  • classpath 경로 가져오기
  • [스프링] 액셀 문서 업로드 - 이름 변경
  • 스프링 - zip 파일 다운로드
Binsoo
Binsoo
내 트러블 슈팅
  • Binsoo
    정수빈 기술블로그임.
    Binsoo
  • 전체
    오늘
    어제
    • 빈수 개발자 개발 일기 (932)
      • 개발중 (634)
        • Spring Boot (95)
        • Spring Security (2)
        • Spring Batch (6)
        • Spring Boot & Redis (13)
        • Java Persistence API (JPA) (28)
        • Web (42)
        • Rest Api (7)
        • Spring Concurrency Control (3)
        • Redis (8)
        • Kubernetes (k8s) (4)
        • MYSQL (35)
        • AirFlow (15)
        • Docker (2)
        • Git (22)
        • Linux (9)
        • JSON Web Tokens (JWT) (4)
        • Troubleshooting (87)
        • Swagger (0)
        • Vue.js (52)
        • Java (74)
        • html (12)
        • C (5)
        • jQuery (15)
        • JavaServer Pages (JSP) (17)
        • Arduino (1)
        • JavaScript (35)
        • Amazon Web Services (AWS) (11)
        • Algorithm (9)
        • 참고 기능 (18)
        • mongo (2)
      • PROJECT (27)
        • 스프링부트+JPA+몽고 API 개발 (3)
        • MINI (2)
        • 게시판 (3)
        • vue 프로젝트 (1)
        • JPA 사이드 프로젝트 기록 (17)
      • TEAM STUDY (156)
        • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (8)
        • 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (12)
        • NAVER DEVELOPER (4)
        • LINUX (23)
        • PYTHON (19)
        • SERVER (8)
        • 알고리즘 코딩 테스트 스터디 (31)
        • 쿠버네티스 (40)
        • 대세는 쿠버네티스 [초급~중급] (11)
      • BOOK (0)
      • 자격증 (61)
        • 리눅스 1급 - 필기 기록 (19)
        • 네트워크 관리사 (2)
        • 네트워크 관리사 2급 - 실기 기록 (21)
        • 네트워크 관리사 2급 - 필기 기록 (16)
        • 정보처리 (2)
      • 직장인 대학원 (17)
        • 기록 (1)
        • 캐글 스터디 (3)
        • R (12)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    docker
    네트워크 관리사 학점
    리눅스 마스터 1급
    VUE
    쿠버네티스
    jpa
    리눅스 마스터
    redis
    네트워크 관리사 실기
    BackendDevelopment
    리눅스 1급 요약
    리눅스 마스터 요약
    쿠버네티스 스터디
    네트워크 관리사 2급
    스프링
    REST API
    파이썬 알고리즘
    java
    네트워크 관리사
    springboot
    git
    네트워크 관리사 2급 실기
    네트워크 관리사 요약
    네트워크 관리사 자격증
    파이썬
    Git 저장소
    Spring
    리눅스 마스터 1급 정리
    리눅스 마스터 1급 요약
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Binsoo
😎 CSV 읽고 쓰고 파일 만들고 😎

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.