사용자에게 확장자 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();
}
근데 이 방법이 대용량도 가능 할 지는 모르겠다.
제발 가능해라 😣
'개발중 > 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 |