package com.smtscript.lib.kcsv; import java.io.File; import java.io.FileOutputStream; import java.nio.charset.Charset; import java.util.Map.Entry; import org.mozilla.javascript.NativeObject; import com.smtscript.utils.SMTStatic; public class ScriptKCSVWriter { private FileOutputStream _fos; private Charset _charset = Charset.forName("UTF-8"); public ScriptKCSVWriter(File file) throws Exception { _fos = new FileOutputStream(file); } public void writeLine(NativeObject nvValues) throws Exception { StringBuilder sbOut = new StringBuilder(); for(Entry entry : nvValues.entrySet()) { if(sbOut.length() > 0) sbOut.append(","); sbOut.append(String.format( "%s,%s", convString(entry.getKey().toString()), convString(SMTStatic.toString(entry.getValue())) )); } sbOut.append("\r\n"); _fos.write(sbOut.toString().getBytes(_charset)); } private String convString(String text) { return String.format("\"%s\"", text.replace("\"", "\"\"")); } public void close() throws Exception { if(_fos != null) { _fos.close(); _fos = null; } } }