我需要将数组保存到文本文件的帮助。所以我有以下数组
private Passenger[] queueArray = new Passenger[30];
这是我所上的课
public class Passenger
{
private String firstName;
private String surname;
private int secondsInQueue;
Passenger(String firstName, String surname)
{
this.firstName = firstName;
this.surname = surname;
secondsInQueue = 0;
}
public String getName()
{
return firstName + " " + surname;
}
public void setName(String firstName, String surname)
{
this.firstName = firstName;
this.surname = surname;
}
public Integer geSeconds()
{
return secondsInQueue;
}
public void setSecondsInQueue(Integer SecondsInQueue)
{
this.secondsInQueue = SecondsInQueue;
}
public void display()
{
System.out.println(firstName + " " + surname + " " + secondsInQueue);
}
}
我需要将乘客的名字和姓氏保存到一个文本文件中。然后,我需要将文件读回数组。
我真的被困住了...任何帮助将不胜感激。
谢谢!
最佳答案
如下更改类实现,以支持Java序列化。没有实现的方法,它是标记器接口。
import java.io.*;
public class Passenger implements Serializable {}
然后,您可以将对象写入具有任何扩展名的任何文件中。然后,使用Java反序列化可以读取对象数组并对其进行迭代。参考本文,它有一个简单的示例https://www.javatpoint.com/serialization-in-java。
在反序列化对象时,可以调用数组对象的getter方法并对其进行迭代。
ObjectInputStream in=new ObjectInputStream(new FileInputStream("f.txt"));
YourClass s=(YourClass)in.readObject();
Passenger[] pasngrArray = s.getPassengerArray(); // call a method to get the array
for (Passenger p : pasngrArray){
// your code to access the two properties here.
}