Java 在将文本保存到文件时遇到问题

Java 在将文本保存到文件时遇到问题,java,Java,我在将文本保存到文件时遇到问题,我正在将文本从文本字段保存到文件。文本字段很好地保存到文件中,但是当我关闭程序重新打开它并尝试保存新条目时,它会擦除文件并损坏它。非常感谢您的帮助:) //按钮保存------------------------------------------ 如果(如getSource()==btnSave) { //调用saveEntry方法,该方法将复制当前 //文本字段从屏幕输入到当前 //记录在内存中的数组中。 保存条目(currentEntry); } 公共作废保

我在将文本保存到文件时遇到问题,我正在将文本从文本字段保存到文件。文本字段很好地保存到文件中,但是当我关闭程序重新打开它并尝试保存新条目时,它会擦除文件并损坏它。非常感谢您的帮助:)

//按钮保存------------------------------------------
如果(如getSource()==btnSave)
{
//调用saveEntry方法,该方法将复制当前
//文本字段从屏幕输入到当前
//记录在内存中的数组中。
保存条目(currentEntry);
}
公共作废保存条目(int i)//
{
PersonInfoData[i].SetPersonInfo(txtPersonName.getText(),txtLikes.getText(),txtDislikes.getText(),txtBdayDay.getText(),txtBdayMonth.getText());
//您可能还希望写入阵列中当前的所有记录
//到硬盘上的数据文件(USB、SSD或等效设备)
writeFile(数据文件名);
}
公共void writeFile(字符串文件名)
{
尝试
{
PrintWriter printFile=新的PrintWriter(新的FileWriter(“BirthdayTracker.txt”);
for(int i=0;i
您应该在如下所示的追加模式下创建FileWriter对象

新的FileWriter(“BirthdayTracker.txt”,true)


这可能与不使用传递给
writeFile
文件名
有关,而使用硬编码的文件名。除了文件被覆盖之外,您还希望得到什么?如果您的问题得到解决,您可以接受答案
        // BUTTON SAVE ------------------------------------------
    if(e.getSource() == btnSave)
    {
        // Call the saveEntry method that will copy the current
        // TextField entries from the screen to the current
        // record in the array in memory.
        saveEntry(currentEntry);
    }


public void saveEntry(int i) // 
{
    PersonsInfoData[i].setPersonsInfo(txtPersonsName.getText(),txtLikes.getText(),txtDislikes.getText(), txtBdayDay.getText(), txtBdayMonth.getText()); 

    // You may also wish to write all the records that are currently in the array
    //       to your data file on the hard drive (USB, SSD, or equivalent)
    writeFile(dataFileName);
}


public void writeFile(String fileName)
{
    try
    {

        PrintWriter printFile = new PrintWriter(new FileWriter("BirthdayTracker.txt"));   

        for(int i = 0; i < numberOfEntries; i++)
        {
            printFile.println(PersonsInfoData[i].getPersonsName() + "," + PersonsInfoData[i].getPersonsLikes() + "," + PersonsInfoData[i].getPersonsDislikes()  + "," + PersonsInfoData[i].getBdayDay() + "," + PersonsInfoData[i].getBdayMonth() );
        }

        printFile.close();
    }
    catch (Exception e)
    {
        System.err.println("Error Writing File: " + e.getMessage());
    }