Сохранить массив объектов в текстовый файл в Java - PullRequest
0 голосов
/ 08 апреля 2020

Мне нужна помощь с сохранением массива в текстовый файл. Итак, у меня есть следующий массив

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);
}


}

Мне нужно сохранить имя и фамилию пассажиров в текстовом файле. И тогда мне нужно прочитать файл обратно в массив.

Я буквально застрял ... Любая помощь будет признательна.

Спасибо!

1 Ответ

0 голосов
/ 08 апреля 2020

Измените реализацию класса, как показано ниже, для поддержки сериализации 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. 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...