Я пытаюсь разработать программу для школьного проекта. Однако я не очень разбираюсь в кодировании, поэтому я часто сталкиваюсь с частыми проблемами. Вся предпосылка моего проекта довольно проста, я создаю систему управления лошадьми, которая в основном представляет собой причудливую формулировку для базы данных. Во-первых, я добавляю информацию о лошади, например, имя, породу, DOB и другую основную информацию. После этого был создан профиль лошади. Теперь вы можете добавить информацию, такую как график обучения, информацию о питании и прошлые травмы. Сегодня, пытаясь добавить информацию для своего питания, я столкнулся с проблемой, когда он просто выводит кучу случайного текста. Here's what is written on the text file when I try to write to it. У меня также есть раздел, где вам нужно вытащить данные из файла и сделать его доступным для редактирования, но без этого раздела я ничего не могу сделать.Сбой при записи в текстовый файл
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
boolean entryError = false;
if(FoodName.getText().equals(""))
{
JOptionPane.showMessageDialog(null, "Enter the Horse Food Name.","Error.",JOptionPane.ERROR_MESSAGE);
entryError = true;
}
if(FoodQuantity.getText().equals("")&& entryError==false)
{
JOptionPane.showMessageDialog(null, "Enter the Horse Food
Quantity.","Error.",JOptionPane.ERROR_MESSAGE);
entryError = true;
}
if(FoodTime.getText().equals("")&& entryError == false)
{
JOptionPane.showMessageDialog(null, "Enter the Horse FoodTimes.","Error.",JOptionPane.ERROR_MESSAGE);
entryError = true;
}
if(entryError == false)
{
try {
FileWriter tWriter = new FileWriter("HorseNutrition.txt",true);
PrintWriter tPrinter = new PrintWriter(tWriter);
tPrinter.println(HorseID + "," + FoodName.getText() + "," + FoodQuantity.getText() + "," + FoodTime.getText());
tPrinter.close();
JOptionPane.showMessageDialog(null, "Nutritional data has been saved.","Info",JOptionPane.INFORMATION_MESSAGE);
}
catch(Exception error) {
System.out.println("Error in saving nutritional data");
}
}
Любая помощь была бы принята с благодарностью!
Похоже, вы пытаетесь распечатать объект, который не перегрузил 'toString()'. Проверьте инструкцию 'println()' и вызовите '.toString()' для каждой переменной, чтобы увидеть, что происходит. –
Это, вероятно, потому, что 'HorseID' является' JTextField', и вы печатаете его непосредственно в файл, а не печатаете его текст 'HorseID.getText()'. Вместо 'tPrinter.println (HorseID +", "....);' try 'tPrinter.println (HorseID.getText() +", "...);' – Titus
Спасибо за помощь всем. Это устранило основную ошибку, но теперь, когда она записывает файл, я понял, что каждый раз, когда я пишу в файл, каждый раз, когда я пишу в файл, файл перезаписывается только с информацией о каждой лошади. Например, допустим, что я создаю Horse1 и вводю его информацию, он напишет файл, который хорош, однако, как только я напишу в информации для другой лошади, файл будет записываться только в информации о последней лошади, которую я вводил. Кто-нибудь знает, почему это может быть? Спасибо огромное! – user7572806