Как мне получить дату и мои подсчеты в одной строке на java?
Я пытаюсь заставить свой java-код записывать подсчеты из графического интерфейса в файл .txt. Я хочу, чтобы код сначала записывал дату и время, а затем в той же строке, я хочу, чтобы он записывал подсчеты.
Что-то вроде этого:
07/12/2018 11:20:56 утра, 4500, 5000, 6500
07/12/2018 11:20:58 утра, 4500, 5000, 6500
и так далее.
Но то, что я получаю, это:
07/12/2018 11:20:56 утра,
4500,5000,6500
07/12/2018 11:20:56 утра,
4500,5000,6500
Я не знаю, почему после штампа даты и времени стоит разрыв строки.
Я приложил свой код ниже:
Что я уже пробовал:
pollTimer.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { try { if(r.read(POLL_FLAG_ADDRESS) != 0) { // if the data ready flag is up if(tglbtnWrite.isSelected() && (intervalCounter%requiredParams[2] == 0)) printw.printf(dtf.format(LocalDateTime.now()) + ","); //For every new line of counts, shows current date and and time of the system. r.write(POLL_FLAG_ADDRESS,0); // put it back down intervalCounter++; // increment interval counter (gets reset by GO/STOP toggle) for(int i = 0; i < MAX_WIDGETS; i++) { // loop through all widgets NumWidget tmp = numwid.get(i); if((tmp.getState() != 0) && (tmp.getState() != 16)) { // check if widget is configured for a channel tmp.setAcc(tmp.getAcc() + r.read(translate[tmp.getState() - 1])); // if it is, poll the respective register if(intervalCounter%requiredParams[2] == 0) { // check if we have reached integration interval tmp.setTextFieldText(String.format("%,d", tmp.getAcc())); // if so, update display if(tglbtnWrite.isSelected()) printw.printf(tmp.getAcc()+ ","); // if write enabled, write to disk tmp.setAcc(0); // reset accumulator } } // if this widget holds a user parameter and write is enabled, write parameter to file if(tmp.getLabelPEnabled() && tglbtnWrite.isSelected()) printw.printf(tmp.getTextFieldText()+","); } if(tglbtnWrite.isSelected()) printw.printf("\r\n"); // if write enabled, end line/carriage return if(intervalCounter == requiredParams[3]) { pollTimer.stop(); // if we are at max data points, stop (always fails if data points > 0) // reset GO button to stopped state btnGO.setText("GO"); btnGO.setForeground(Color.GREEN); btnGO.setSelected(false); } } } catch (SerialPortException e) { e.printStackTrace(); } catch (SerialPortTimeoutException e) { e.printStackTrace(); } } });
Richard MacCutchan
Какие управляющие символы у вас есть в формате dtf.
Member 13909214
Что это значит?
Richard MacCutchan
Извините, моя ошибка, Я принял ее за строку формата печати. Однако представляется вероятным, что строка, созданная с помощью dtf.format, содержит завершающий символ новой строки. Вы можете легко проверить это с помощью своего отладчика.