gpt4 book ai didi

java - 如何保存到当前文本文件/更新到当前文本文件?

转载 作者:行者123 更新时间:2023-12-01 11:57:14 25 4
gpt4 key购买 nike

我目前有一个程序,允许您添加新学生,或保存有关当前学生的新信息。我是 BufferedReader/Writer、FileWriter 的新手,我刚刚在这个实验室中使用过它。现在,当我添加新学生时,它将数据添加到新的文本文件中,并删除当前的学生数组。如果有人能提供帮助那就太好了。

try 
{
if((nameBox.getText().equals("")) || (ageBox.getText().equals("")) || (weightBox.getText().equals(""))|| (allBox.getText().equals("")))
{
JOptionPane.showMessageDialog(null, "Error: Please input Data!", "Data?", JOptionPane.ERROR_MESSAGE);
}
else
{
studentArray[t] = new Student();
studentArray[t].changeName(nameBox.getText()) ;
studentArray[t].changeAge(Integer.parseInt(ageBox.getText()));
studentArray[t].changeWeight(Double.parseDouble(weightBox.getText()));
studentArray[t].changeAllergy(Boolean.parseBoolean(allBox.getText()));
count++;

System.out.println("" + studentArray[t].getName());
System.out.println("" + studentArray[t].getAge());
System.out.println("" + studentArray[t].getWeight());
System.out.println("" + studentArray[t].getAllergy());
System.out.println("" );
}

//FileWriter files = new FileWriter(file);
//BufferedWriter pies = new BufferedWriter(files);

//String data = studentArray[t].getName() + "%" + studentArray[t].getAge()+"%" + studentArray[t].getWeight()+ "%" + studentArray[t].getAllergy();
//pies.write(data);

//pies.close();

}

catch(Exception z)
{
JOptionPane.showMessageDialog(null, "Wrong type!", "Type?", JOptionPane.ERROR_MESSAGE);
}

最佳答案

您应该使用ArrayList而不是数组。因此您只需添加一个新学生即可:

ArrayList<Student> studentList = new ArrayList();

然后,无需迭代数组,只需创建一个新的 Student 对象。

Student student = new Student();
student.changeName(nameBox.getText()) ;
student.changeAge(Integer.parseInt(ageBox.getText()));
student.changeWeight(Double.parseDouble(weightBox.getText()));
student.changeAllergy(Boolean.parseBoolean(allBox.getText()));

现在您将其添加到您的学生列表中:

studentList.add(student);

如果您已添加所需的所有学生,则可以将学生列表附加到您的文件中。将 true 作为运算符添加到 FileWriter 中非常重要,因为这样它会附加输入:

FileWriter writer = new FileWriter(file, true); 
for(Student st: studentList) {
String data = st.getName() + "%" + st.getAge()+"%" + st.getWeight()+ "%" + st.getAllergy();
writer.write(data+"\n");
}
writer.close();

因此,您在这里迭代 studentList 并将其附加到您的文件中。你看到\n了吗?这是一个换行符,这意味着一个学生只有一行。

关于java - 如何保存到当前文本文件/更新到当前文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28355223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com