Member 13909214 Ответов: 0

Как мне получить дату и мои подсчеты в одной строке на 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, содержит завершающий символ новой строки. Вы можете легко проверить это с помощью своего отладчика.

0 Ответов