@Override public void writeDataset(UsersDataset usersDataset, String fileName) throws IOException { String fileNameWithExtension = fileName; if (!fileNameWithExtension.endsWith(".csv")) { fileNameWithExtension = fileNameWithExtension + "." + CSV_EXTENSION; } StringBuilder stringBuilder = new StringBuilder(); Feature[] features = usersDataset.getFeatures(); stringBuilder.append(ID_ITEM_COLUMN_NAME).append(columnDelimiter); stringBuilder.append(ITEM_NAME_COLUMN_NAME); for (Feature userFeature : features) { String extendedName = userFeature.getExtendedName(); stringBuilder .append(columnDelimiter) .append(stringDelimiter) .append(extendedName) .append(stringDelimiter); } stringBuilder.append(registerDelimiter); for (User user : usersDataset) { int idUser = user.getId(); StringBuilder linea = new StringBuilder(); // Escribir el id y el nombre linea .append(idUser) .append(columnDelimiter) .append(stringDelimiter) .append(user.getName()) .append(stringDelimiter); for (Feature userFeature : features) { Object featureValue = user.getFeatureValue(userFeature); String featureValueString = userFeature.getType().featureValueToString(featureValue); linea.append(columnDelimiter).append(featureValueString); } linea.append(registerDelimiter); stringBuilder.append(linea.toString()); } BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(new File(fileNameWithExtension))); bufferedWriter.write(stringBuilder.toString()); bufferedWriter.flush(); bufferedWriter.close(); }