package com.totoro.incardisplay.simulations; import java.io.*; public class JSONOutput { // Change these flags for number of files and number of seconds. private static final int MIN_SECONDS = 60*5; private static final int MAX_SECONDS = 60*15; private static final int NUM_FILES = 100; public static void main(String[] args) throws IOException { for(int i = 1; i <= NUM_FILES; i++) { System.out.println("Generating file " + i); DataGenerator gen = new DataGenerator(); int num = MIN_SECONDS + (int)((MAX_SECONDS-MIN_SECONDS+1)*Math.random()); gen.generateData(num); TimeSlice[] list = gen.getAllData(); PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("data" + i + ".txt"))); StringBuilder sb = new StringBuilder(); int count = 0; for(TimeSlice t: list) { sb.append(get(t, ++count)); } sb.deleteCharAt(sb.length()-1); sb.deleteCharAt(sb.length()-1); pw.println("{"); pw.println("\t\"trips\":["); pw.println(sb); pw.println("\t]"); pw.println("}"); pw.close(); } } public static String get(TimeSlice t, int num) { StringBuilder sb = new StringBuilder(); sb.append(String.format("\t\t{\n", num)); for(Datum d: t.getAllData()) { sb.append(format(d)); } sb.deleteCharAt(sb.length()-1); sb.deleteCharAt(sb.length()-1); sb.append("\n\t\t},\n"); return sb.toString(); } private static Object format(Datum d) { return String.format("\t\t\t\"%s\": %.10f,\n", d.getLabel(), d.getValue()); } }