Моя программа должна принимать заказы (карты) от пользователей, сохранять их на карте внутри карты и записывать в файл. Когда пользователь вводит несколько заказов (Карт), в файл записывается только последний, а не все.
Я не понимаю, почему это происходит. У кого-нибудь есть идеи?
Спасибо
private Map<LocalDate, Map<Integer, OrderDTO>> orders = new HashMap<>();
//user creates orders
public OrderDTO addOrder(OrderDTO order) {
Map<Integer, OrderDTO> currentOrder = new HashMap<>();
LocalDate ld = order.getLd();
order.setOrderN(counter++);
currentOrder.put(order.getOrderN(), order);
orders.put(ld, currentOrder);
return order;
}
//user selects "save current work"
public void saveWork(LocalDate ld) {
writeOrder(ld);
}
//writing into a file
private void writeOrder(LocalDate ld) {
String date = ld.format(DateTimeFormatter.ofPattern("MMddyyyy"));
String fileName = ORDER_FILE + date + ".txt";
PrintWriter out;
out = new PrintWriter(new FileWriter(fileName));
Map<Integer, OrderDTO> myOrders = orders.get(ld);
if (myOrders == null) {
return;
}
List<OrderDTO> ordersList = new ArrayList<>(myOrders.values());
for (OrderDTO order : ordersList) {
out.println(order.getOrderN() + DELIMITER
+ order.getCustomer() + DELIMITER
+ order.getState() + DELIMITER
+ order.getProduct() + DELIMITER
.........
out.flush();
}
out.close();
}