package CrowdBenchmark.tools.io; import java.io.File; import java.io.FileWriter; import java.util.List; import CrowdBenchmark.models.Data; import com.csvreader.CsvWriter; public class My_CsvWriter { private static My_CsvWriter singleton; private String defaultPath; private My_CsvWriter() { } private My_CsvWriter(String path) { defaultPath = path; } public static My_CsvWriter getInstance() { if (singleton == null) { singleton = new My_CsvWriter(); } return singleton; } public String WriteToFile(String input, String FileName) { return WriteToFile(input, FileName, true, false); } public void WriteToFile(List<Data> input, String path, String title) { try { CsvWriter csvOutput = new CsvWriter(new FileWriter(path, false), ','); String[] labels = title.split("\t"); for (String piece : labels) { csvOutput.write(piece); } csvOutput.endRecord(); int size = input.size(); int start = 0; for (; start < size; start++) { Data onerow = input.get(start); String[] content = onerow.toString().split("\t"); for (String piece : content) { csvOutput.write(piece); } csvOutput.endRecord(); } csvOutput.close(); } catch (Exception e) { e.printStackTrace(); } } public String WriteToFile(String input, String filename, boolean withTitle, boolean rawdata) { String FileName = filename; String[] lines = input.split("\n"); if (rawdata) { saveRawFile(FileName, lines, withTitle); } else { saveGeneral(FileName, withTitle, lines); } return FileName; } private void saveRawFile(String outputFile, String[] lines, boolean withTitle) { boolean alreadyExists = new File(outputFile).exists(); try { CsvWriter csvOutput = new CsvWriter( new FileWriter(outputFile, true), ','); int size = lines.length; int start = 0; if (!withTitle) start = 1; if (alreadyExists) { start = 1; } for (; start < size; start++) { String line = lines[start]; csvOutput.write(line); csvOutput.endRecord(); } csvOutput.close(); } catch (Exception e) { e.printStackTrace(); } } private void saveGeneral(String outputFile, boolean withTitle, String[] lines) { boolean alreadyExists = new File(outputFile).exists(); try { CsvWriter csvOutput = new CsvWriter( new FileWriter(outputFile, true), ','); int size = lines.length; int start = 0; if (!withTitle) start = 1; if (alreadyExists) { start = 1; } for (; start < size; start++) { String line = lines[start]; String[] content = line.split("\t"); for (String piece : content) { csvOutput.write(piece); } csvOutput.endRecord(); } csvOutput.close(); } catch (Exception e) { e.printStackTrace(); } } }