빈쿵바라기
좌충우돌 개발자의 기록
빈쿵바라기
전체 방문자
오늘
어제
  • 분류 전체보기 (53)
    • Programming (25)
      • JAVA (12)
      • Spring Boot (6)
      • JPA (7)
      • Python (0)
    • Database (12)
      • RDBMS (4)
      • NoSQL (7)
    • Server (11)
    • Elasticsearch (3)
    • ETC (2)

블로그 메뉴

    공지사항

    인기 글

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    빈쿵바라기

    좌충우돌 개발자의 기록

    Programming/JAVA

    [OpenCSV] Output Stream에 OpenCSV 쓰는 방법

    2022. 8. 18. 18:31

    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
      'Programming/JAVA' 카테고리의 다른 글
      • [BufferedImage] 이미지 이진화(Image Binarize)
      • [Tesseract] 이미지에서 텍스트 추출하기 (OCR)
      • [HttpClient] 마지막 Redirect URL 구하기
      • [POI] 대용량 엑셀 다운로드 SXSSFWorkbook
      빈쿵바라기
      빈쿵바라기
      삽질하는 개발자의 좌충우돌 개발기

      티스토리툴바