2017-02-16 3 views
0

Я пытаюсь разработать программу для школьного проекта. Однако я не очень разбираюсь в кодировании, поэтому я часто сталкиваюсь с частыми проблемами. Вся предпосылка моего проекта довольно проста, я создаю систему управления лошадьми, которая в основном представляет собой причудливую формулировку для базы данных. Во-первых, я добавляю информацию о лошади, например, имя, породу, 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"); 
} 
    } 

Любая помощь была бы принята с благодарностью!

+0

Похоже, вы пытаетесь распечатать объект, который не перегрузил 'toString()'. Проверьте инструкцию 'println()' и вызовите '.toString()' для каждой переменной, чтобы увидеть, что происходит. –

+1

Это, вероятно, потому, что 'HorseID' является' JTextField', и вы печатаете его непосредственно в файл, а не печатаете его текст 'HorseID.getText()'. Вместо 'tPrinter.println (HorseID +", "....);' try 'tPrinter.println (HorseID.getText() +", "...);' – Titus

+0

Спасибо за помощь всем. Это устранило основную ошибку, но теперь, когда она записывает файл, я понял, что каждый раз, когда я пишу в файл, каждый раз, когда я пишу в файл, файл перезаписывается только с информацией о каждой лошади. Например, допустим, что я создаю Horse1 и вводю его информацию, он напишет файл, который хорош, однако, как только я напишу в информации для другой лошади, файл будет записываться только в информации о последней лошади, которую я вводил. Кто-нибудь знает, почему это может быть? Спасибо огромное! – user7572806

ответ

0

То, что HorseID похоже на объект (или, если быть точным, он выглядит как объект JTextField). Вывод его, поскольку он запустит его метод .toString() и вывести некоторую информацию об этом конкретном объекте JTextField. Если вы хотите вывести текст, который у вас есть в этом поле, используйте:

HorseID.getText()