private void writeReport() { long deonCount = 0; long utilCount = 0; double deonTime = 0; double utilTime = 0; double totalTime = 0; SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy"); String date = sdf.format(new Date()); String[] questionsFile = this.file.getName().split("\\."); boolean newDate = false; File resultsFile = new File("Odpowiedzi_" + questionsFile[0] + "_" + date + ".csv"); if (resultsFile.exists() == false) { newDate = true; } displayCenteredText("KONIEC BADANIA.\r\nDZIĘKUJEMY ZA UDZIAŁ."); for (Dilemma selected : selectedDilemmas) { System.out.println(selected); if ("TAK".equals(selected.getAnswer())) { utilCount++; utilTime += selected.getSeconds(); } if ("NIE".equals(selected.getAnswer())) { deonCount++; deonTime += selected.getSeconds(); } Long time = selected.getSeconds(); totalTime += time; } if (utilCount > 0) { utilTime = ((double) utilTime / (double) utilCount); // utilTimeStr = String.format(new Locale("US"),"%.2f",utilTime); // this.textArea.append("\nŚredni czas decyzji utylitarnej (ms): " + utilTimeStr); } if (deonCount > 0) { deonTime = ((double) deonTime / (double) deonCount); // deonTimeStr = String.format(new Locale("US"),"%.2f",deonTime); // this.textArea.append("\nŚredni czas decyzji deontologicznej (ms): " + deonTimeStr); } try { BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(resultsFile, true))); StringBuffer sb = new StringBuffer(); if (newDate) { String[] fields = new String[] { "Kod osoby", "Data badania", "Imię", "Nazwisko", "Wiek", "Płeć", "Miejsce zamieszkania", "Praworęczność", "Lata edukacji", "Urazy głowy", "Leczenie neur.", "Leczenie psych.", "Zażywa leki psych.", "Kłopoty z pam.", "Uzależnienia", "Decyzja utylitarna", "Decyzja deontologiczna", "Średni czas decyzji utylitarnej (ms)", "Średni czas decyzji deontologicznej (ms)" }; String fieldStr = StringUtils.join(fields, ";"); sb.append(fieldStr).append("\r\n"); } String[] userData = new String[] { ud.getCode(), date, ud.getName(), ud.getSurname(), new Integer(ud.getAge()).toString(), new Integer(ud.getGender()).toString(), new Integer(ud.getPlace()).toString(), new Integer(ud.getHandedness()).toString(), new Integer(ud.getEducationYears()).toString(), // Interview new Integer(ud.getHeadInjuries()).toString(), new Integer(ud.getNeurotreatment()).toString(), new Integer(ud.getPsychotreatment()).toString(), new Integer(ud.getOnDrugs()).toString(), new Integer(ud.getMemoryPb()).toString(), new Integer(ud.getAddictions()).toString(), new Long(utilCount).toString(), new Long(deonCount).toString(), new Double(utilTime).toString(), new Double(deonTime).toString() }; String userDataStr = StringUtils.join(userData, ";"); sb.append(userDataStr); sb.append("\r\n"); bufferedWriter.append(sb); bufferedWriter.flush(); bufferedWriter.close(); sb.delete(0, sb.length()); } catch (IOException ex) { Logger.getLogger(DylematorUI.class.getName()).log(Level.SEVERE, null, ex); } String totalTimeStr = String.format(new Locale("US"), "%.2f", totalTime / 1000); // this.textArea.append("\nCałkowity czas: " + totalTimeStr + " sek.\n"); }