Запись строковых значений в объект Writer с помощью Java 8 StreamJAVA

Программисты JAVA общаются здесь
Anonymous
Запись строковых значений в объект Writer с помощью Java 8 Stream

Сообщение Anonymous »

Я пытаюсь заменить обычный цикл for, который записывает значения String в объект Writer, потоком в следующем коде:

Код: Выделить всё

public void save() {
try (Writer fileWriter = new FileWriter(file)) {
fileWriter.write("someStrings\n");

ArrayList
 parentList = super.getParentType();
for (ParentType parentTypeObj : parentList) {
fileWriter.write(toString(parentTypeObj) + "\n");
}

ArrayList childList = super.getChildType();
for (ChildType childTypeObj : childList) {
fileWriter.write(toString(childTypeObj) + "\n");
}

} catch (IOException e) {
throw new ManagerSaveException();
}
}

public static String toString(ParentType parentTypeObj) {
if (parentTypeObj == null) return null;
String result = "";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy, HH:mm");
if (parentTypeObj instanceof ChildType) {
String startTime = parentTypeObj.getStartTime().format(formatter);
String endTime = parentTypeObj.getEndTime().format(formatter);
result = Integer.toString(parentTypeObj.getIdNum()) + ","
+ parentTypeObj.getClass().getSimpleName().toUpperCase() + ","
+ parentTypeObj.getName() + ","
+ parentTypeObj.getStatus() + ","
+ parentTypeObj.getDescription() + ","
+ ((ChildType) parentTypeObj).getSpecId() + ","
+ parentTypeObj.getDuration().toMinutes() + ","
+ startTime + ","
+ endTime + ",";
} else {
String startTime = parentTypeObj.getStartTime().format(formatter);
String endTime = parentTypeObj.getEndTime().format(formatter);
result = Integer.toString(parentTypeObj.getIdNum()) + ","
+ parentTypeObj.getClass().getSimpleName().toUpperCase() + ","
+ parentTypeObj.getName() + ","
+ parentTypeObj.getStatus() + ","
+ parentTypeObj.getDescription() + ","
+ parentTypeObj.getDuration().toMinutes() + ","
+ startTime + ","
+ endTime + ",";
}
return result;
}
Как это сделать?
Ожидается запись строковых значений в объект Writer через Stream.

Подробнее здесь: https://stackoverflow.com/questions/790 ... a-8-stream

Вернуться в «JAVA»