Сохранение ввода пользователя в HashMap и запись в файл - PullRequest
0 голосов
/ 06 апреля 2019

Моя программа должна принимать заказы (карты) от пользователей, сохранять их на карте внутри карты и записывать в файл. Когда пользователь вводит несколько заказов (Карт), в файл записывается только последний, а не все. Я не понимаю, почему это происходит. У кого-нибудь есть идеи?

Спасибо



    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();
    }


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...