/* * Copyright (C) 2014 TESIS DYNAware GmbH. * All rights reserved. Use is subject to license terms. * * This file is licensed under the Eclipse Public License v1.0, which accompanies this * distribution and is available at http://www.eclipse.org/legal/epl-v10.html. */ package de.tesis.dynaware.javafx.fancychart.data.formats; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.text.NumberFormat; import java.text.ParseException; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.SortedMap; import java.util.TreeMap; import au.com.bytecode.opencsv.CSVReader; import au.com.bytecode.opencsv.CSVWriter; public class CsvDao { private static final Locale LOCALE = Locale.US; private static CSVReader reader; private static CSVWriter writer; public static SortedMap<Number, Number> importCsv(String filePath) { try { reader = new CSVReader(new FileReader(filePath)); List<String[]> entries = reader.readAll(); SortedMap<Number, Number> data = new TreeMap<>(); for (String[] line : entries) { if (line.length == 2) { Number x = NumberFormat.getNumberInstance(LOCALE).parse(line[0]); Number y = NumberFormat.getNumberInstance(LOCALE).parse(line[1]); data.put(x, y); } } reader.close(); return data; } catch (IOException | ParseException e) { System.err.println(e.getMessage()); } return Collections.emptySortedMap(); } public static void exportCsv(SortedMap<Number, Number> data, String filePath) { try { writer = new CSVWriter(new FileWriter(filePath), ',', '\0'); List<String[]> entries = new ArrayList<>(data.size()); for (Number x : data.keySet()) { String xString = String.valueOf(x); String yString = String.valueOf(data.get(x)); entries.add(new String[] { xString, yString }); } writer.writeAll(entries); writer.flush(); writer.close(); } catch (IOException e) { System.err.println(e.getMessage()); } } }