본문 바로가기

개발중/Spring

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

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' 카테고리의 다른 글

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