Dependency 추가
<!-- https://mvnrepository.com/artifact/com.opencsv/opencsv -->
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.6</version>
</dependency>
Example Code
public void downloadCsv(HttpServletResponse response) throws IOException {
// 출력 파일명 : 한글 깨짐 방지를 위해 UTF-8 인코딩
String outputFileName = URLEncoder.encode("테스트.csv", "UTF-8");
response.setContentType("text/csv;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=\""+outputFileName +"\"");
OutputStream outputStream = null;
try {
outputStream = response.getOutputStream();
// UTF-8 BOM 추가
outputStream.write(0xEF);
outputStream.write(0xBB);
outputStream.write(0xBF);
OutputStream buffOs = new BufferedOutputStream(outputStream);
OutputStreamWriter osWriter = new OutputStreamWriter(buffOs);
CSVWriter csvWriter = new CSVWriter(osWriter);
List<String[]> csvDatas = new ArrayList<String[]>();
csvDatas.add(new String[] {"1", "a", "가"});
csvDatas.add(new String[] {"2", "b", "나"});
csvWriter.writeAll(csvDatas, false);
osWriter.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
outputStream.flush();
outputStream.close();
}
}
한글 깨짐 처리
// UTF-8 BOM 추가
outputStream.write(0xEF);
outputStream.write(0xBB);
outputStream.write(0xBF);
'Programming > JAVA' 카테고리의 다른 글
애니메이션 이미지인지 아닌지 체크하는 방법(Check image animated or not in JAVA) (0) | 2022.09.16 |
---|---|
[BufferedImage] 이미지 이진화(Image Binarize) (0) | 2022.09.16 |
[Tesseract] 이미지에서 텍스트 추출하기 (OCR) (0) | 2022.09.14 |
[HttpClient] 마지막 Redirect URL 구하기 (0) | 2022.08.30 |
[POI] 대용량 엑셀 다운로드 SXSSFWorkbook (0) | 2022.08.18 |