我需要将数组保存到文本文件的帮助。所以我有以下数组

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.
}

10-05 23:03
查看更多