diff --git a/src/main/java/be/cylab/java/wowa/training/Utils.java b/src/main/java/be/cylab/java/wowa/training/Utils.java
index 4e2972538cf25b537ae6840a6778efac474abe75..43ee8d3f07f6a0aa0d2fb38c01a77ed0347bb010 100644
--- a/src/main/java/be/cylab/java/wowa/training/Utils.java
+++ b/src/main/java/be/cylab/java/wowa/training/Utils.java
@@ -5,10 +5,7 @@ import com.owlike.genson.Genson;
 import info.debatty.java.aggregation.WOWA;
 import org.apache.commons.lang3.ArrayUtils;
 
-import java.io.BufferedWriter;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
+import java.io.*;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Paths;
@@ -363,15 +360,15 @@ final class Utils {
 
         //True positive rate.
         double wowa_true_positive_rate = wowa_true_positive_counter
-                / wowa_positive_condition;
+                / (double) wowa_positive_condition;
         double average_true_positive_rate = average_true_positive_counter
-                / average_positive_condition;
+                / (double) average_positive_condition;
 
         //True negative rate.
         double wowa_true_negative_rate = wowa_true_negative_counter
-                / wowa_negative_condition;
+                / (double) wowa_negative_condition;
         double average_true_negative_rate = average_true_negative_counter
-                / average_negative_condition;
+                / (double) average_negative_condition;
 
         //False negative rate.
         double wowa_false_negative_rate = 1 - wowa_true_positive_rate;
@@ -472,42 +469,42 @@ final class Utils {
             final double wowa_false_omission_rate,
             final double wowa_accuracy,
             final double wowa_f_1) {
-        try (FileWriter fw = new FileWriter(filename, true);
-             BufferedWriter bw = new BufferedWriter(fw);
-             PrintWriter writer = new PrintWriter(bw)) {
+        try (OutputStreamWriter writer = new OutputStreamWriter(
+                new FileOutputStream(filename),
+                StandardCharsets.UTF_8)) {
 
-            writer.println("___________________________________________");
-            writer.println("|TRIGGER VALUE       :" + trigger_value);
-            writer.println("|_________________________________________|");
-            writer.println("WOWA");
+            writer.write("___________________________________________");
+            writer.write("|TRIGGER VALUE       :" + trigger_value);
+            writer.write("|_________________________________________|");
+            writer.write("WOWA");
 
-            writer.println("Wowa true positive : "
+            writer.write("Wowa true positive : "
                     + wowa_true_positive_counter);
-            writer.println("Wowa true negative : "
+            writer.write("Wowa true negative : "
                     + wowa_true_negative_counter);
-            writer.println("Wowa false positive : "
+            writer.write("Wowa false positive : "
                     + wowa_false_positive_counter);
-            writer.println("Wowa false negative : "
+            writer.write("Wowa false negative : "
                     + wowa_false_negative_counter);
 
-            writer.println("Wowa true positive rate : "
+            writer.write("Wowa true positive rate : "
                     + wowa_true_positive_rate);
-            writer.println("Wowa true negative rate : "
+            writer.write("Wowa true negative rate : "
                     + wowa_true_negative_rate);
-            writer.println("Wowa false positive rate : "
+            writer.write("Wowa false positive rate : "
                     + wowa_false_positive_rate);
-            writer.println("Wowa false negative rate : "
+            writer.write("Wowa false negative rate : "
                     + wowa_false_negative_rate);
 
-            writer.println("Wowa precision : " + wowa_precision);
-            writer.println("Wowa negative predictive value : "
+            writer.write("Wowa precision : " + wowa_precision);
+            writer.write("Wowa negative predictive value : "
                     + wowa_negative_prediction_value);
-            writer.println("Wowa false discovery rate : "
+            writer.write("Wowa false discovery rate : "
                     + wowa_false_discovery_rate);
-            writer.println("Wowa false omission rate : "
+            writer.write("Wowa false omission rate : "
                     + wowa_false_omission_rate);
-            writer.println("Wowa accuracy : " + wowa_accuracy);
-            writer.println("Wowa F1 score : " + wowa_f_1 + "\n");
+            writer.write("Wowa accuracy : " + wowa_accuracy);
+            writer.write("Wowa F1 score : " + wowa_f_1 + "\n");
 
         } catch (IOException e) {
             e.printStackTrace();
@@ -531,41 +528,41 @@ final class Utils {
             final double average_false_omission_rate,
             final double average_accuracy,
             final double average_f_1) {
-        try (FileWriter fw = new FileWriter(filename, true);
-             BufferedWriter bw = new BufferedWriter(fw);
-             PrintWriter writer = new PrintWriter(bw)) {
-
-            writer.println("___________________________________________");
-            writer.println("|TRIGGER VALUE       :" + trigger_value);
-            writer.println("|_________________________________________|");
-            writer.println("AVERAGE");
-            writer.println("Average true positive : "
+        try (OutputStreamWriter writer = new OutputStreamWriter(
+                new FileOutputStream(filename),
+                StandardCharsets.UTF_8)) {
+
+            writer.write("___________________________________________");
+            writer.write("|TRIGGER VALUE       :" + trigger_value);
+            writer.write("|_________________________________________|");
+            writer.write("AVERAGE");
+            writer.write("Average true positive : "
                     + average_true_positive_counter);
-            writer.println("Average true negative : "
+            writer.write("Average true negative : "
                     + average_true_negative_counter);
-            writer.println("Average false positive : "
+            writer.write("Average false positive : "
                     + average_false_positive_counter);
-            writer.println("Average false negative : "
+            writer.write("Average false negative : "
                     + average_false_negative_counter);
 
-            writer.println("Average true positive rate : "
+            writer.write("Average true positive rate : "
                     + average_true_positive_rate);
-            writer.println("Average true negative rate : "
+            writer.write("Average true negative rate : "
                     + average_true_negative_rate);
-            writer.println("Average false positive rate : "
+            writer.write("Average false positive rate : "
                     + average_false_positive_rate);
-            writer.println("Average false negative rate : "
+            writer.write("Average false negative rate : "
                     + average_false_negative_rate);
 
-            writer.println("Average precision : " + average_precision);
-            writer.println("Average negative predictive value : "
+            writer.write("Average precision : " + average_precision);
+            writer.write("Average negative predictive value : "
                     + average_negative_prediction_value);
-            writer.println("Average false discovery rate : "
+            writer.write("Average false discovery rate : "
                     + average_false_discovery_rate);
-            writer.println("Average false omission rate : "
+            writer.write("Average false omission rate : "
                     + average_false_omission_rate);
-            writer.println("Average accuracy : " + average_accuracy);
-            writer.println("Average F1 score : " + average_f_1);
+            writer.write("Average accuracy : " + average_accuracy);
+            writer.write("Average F1 score : " + average_f_1);
         } catch (IOException e) {
             e.printStackTrace();
         }