package org.insightech.er.util; import java.io.PrintWriter; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; /** * CSV�o�̓N���X * * @author generator * @version $Id: CsvWriter.java,v 1.1 2008/08/17 10:49:17 h_nakajima Exp $ */ public class CsvWriter { private static final DateFormat DEFAULT_FORMAT = new SimpleDateFormat( "yyyy/MM/dd"); private static final String DELIMITER = ","; private PrintWriter writer; private DateFormat dateFormat; private String delimiter; /** * �R���X�g���N�^ * * @param writer * �o�͐� */ public CsvWriter(PrintWriter writer) { this.writer = writer; this.delimiter = ""; this.dateFormat = DEFAULT_FORMAT; } /** * Date �^�̃f�[�^���o�͂���ۂ̃t�H�[�}�b�g�`�����w�肵�܂� * * @param format * �t�H�[�}�b�g�`�� */ public void setDateFormat(String format) { this.dateFormat = new SimpleDateFormat(format); } /** * CSV�̂��߂ɕ�������G�X�P�[�v���܂��B * * @param str * �G�X�P�[�v�O�̕����� * @return �G�X�P�[�v���ꂽ������ */ public static String escape(String str) { if (str == null) { return ""; } return str.replaceAll("\"", "\"\""); } /** * �I�u�W�F�N�g�̕�����\�����o�͂��܂� * * @param object * �I�u�W�F�N�g */ public void print(Object object) { String value = null; if (object instanceof Date) { value = dateFormat.format((Date) object); } else { if (object == null) { value = ""; } else { value = object.toString(); } } writer.print(this.delimiter); writer.print("\""); writer.print(escape(value)); writer.print("\""); this.setDelimiter(); } /** * �f���~�^�[���o�͑ΏۂɃZ�b�g���܂� */ private void setDelimiter() { this.delimiter = DELIMITER; } /** * �f���~�^�[���o�͑Ώۂ��烊�Z�b�g���܂� */ private void resetDelimiter() { this.delimiter = ""; } /** * ���s�R�[�h���o�͂��܂� */ public void crln() { writer.print("\r\n"); this.resetDelimiter(); } /** * �o�͐��‚��܂� */ public void close() { this.writer.close(); } }