package no.difi.datahotel.util; import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.nio.charset.Charset; import com.csvreader.CsvWriter; /** * A class to handle writing of CSV files */ public class CSVWriter { private CsvWriter writer; /** * Initializes the object and supplies the file to be written. * @param csvFile - the file to be written * @throws IOException if a new exception occurred. */ public CSVWriter(File csvFile) throws IOException { this(csvFile.toString()); } public CSVWriter(String filename) throws IOException { writer = new CsvWriter(filename, ';', Charset.forName("UTF-8")); writer.setForceQualifier(true); writer.setUseTextQualifier(true); } public CSVWriter(OutputStream stream) throws IOException { writer = new CsvWriter(stream, ';', Charset.forName("UTF-8")); writer.setForceQualifier(true); writer.setUseTextQualifier(true); } public void fromReader(CSVReader reader, boolean originalHeaders) throws IOException { if (originalHeaders) writeHeader(reader.getHeaders()); while (reader.hasNext()) write(reader.getNextLineArray()); } public void writeHeader(String[] headers) throws IOException { writer.writeRecord(headers); } public void write(String[] values) throws IOException { writer.writeRecord(values); } public void close() { writer.close(); } }