package org.insight_centre.aceis.utils; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.nio.file.CopyOption; import java.nio.file.Files; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import com.csvreader.CsvReader; import com.csvreader.CsvWriter; public class FileOperation { public static void main(String[] args) throws IOException { // File trafficRawDirectory = new File("streams"); // File[] trafficRawFiles = trafficRawDirectory.listFiles(); // for (File tr : trafficRawFiles) { // System.out.println("renaming: " + tr.toPath()); // File newTr; // if (tr.getName().contains("traffic")) { // newTr = new File("streams" + File.separator + "AarhusT" // + tr.getName().substring(1, tr.getName().length())); // tr.renameTo(newTr); // } else if (tr.getName().contains("pollution")) { // newTr = new File("streams" + File.separator + "AarhusP" // + tr.getName().substring(1, tr.getName().length())); // tr.renameTo(newTr); // } // // // Files.copy(tr.toPath(), newTr.toPath()); // } CsvReader streamData = new CsvReader("dataset/aarhus_parking.csv"); streamData.setTrimWhitespace(false); streamData.setDelimiter(','); streamData.readHeaders(); List<String> streamNames = new ArrayList<String>(); streamNames.add("NORREPORT"); streamNames.add("BUSGADEHUSET"); streamNames.add("BRUUNS"); streamNames.add("SKOLEBAKKEN"); streamNames.add("SCANDCENTER"); streamNames.add("SALLING"); streamNames.add("MAGASIN"); streamNames.add("KALKVAERKSVEJ"); Map<String, CsvWriter> writerMap = new HashMap<String, CsvWriter>(); for (String s : streamNames) try { // use FileWriter constructor that specifies open for appending String outputFile = "dataset/AarhusParkingData-" + s + ".stream"; boolean alreadyExists = new File(outputFile).exists(); CsvWriter csvOutput = new CsvWriter(new FileWriter(outputFile, true), ','); // if the file didn't already exist then we need to write out the header line if (!alreadyExists) { csvOutput.write("vehiclecount"); csvOutput.write("updatetime"); csvOutput.write("_id"); csvOutput.write("totalspaces"); csvOutput.write("garagecode"); csvOutput.write("streamtime"); csvOutput.endRecord(); } // } writerMap.put(s, csvOutput); // csvOutput.close(); } catch (IOException e) { e.printStackTrace(); } while (streamData.readRecord()) { String code = streamData.get("garagecode"); writerMap.get(code).write(streamData.get("vehiclecount")); writerMap.get(code).write(streamData.get("updatetime")); writerMap.get(code).write(streamData.get("_id")); writerMap.get(code).write(streamData.get("totalspaces")); writerMap.get(code).write(streamData.get("garagecode")); writerMap.get(code).write(streamData.get("streamtime")); writerMap.get(code).endRecord(); } for (CsvWriter csv : writerMap.values()) csv.close(); } }