Java – как я могу записать свой ArrayList в файл и прочитать (загрузить) этот файл в исходный ArrayList?JAVA

Программисты JAVA общаются здесь
Anonymous
Java – как я могу записать свой ArrayList в файл и прочитать (загрузить) этот файл в исходный ArrayList?

Сообщение Anonymous »

Я пишу программу на Java, которая отображает ряд внеклассных клубов (например, футбол, хоккей — вводится пользователем). Клубы добавляются в следующий ArrayList:

Код: Выделить всё

private ArrayList clubs = new ArrayList();
Следующим методом:

Код: Выделить всё

public void addClub(String clubName) {
Club club = findClub(clubName);
if (club == null)
clubs.add(new Club(clubName));
}
'Club' — это класс с именем конструктора:

Код: Выделить всё

public class Club {

private String name;

public Club(String name) {
this.name = name;
}

//There are more methods in my program but don't affect my query..
}
Моя программа работает — она позволяет мне добавить новый объект клуба в мой список массивов, я могу просмотреть список массивов, удалить любой, который захочу, и т. д.

Однако теперь я хочу сохранить этот массивList (клубы) в файл, а затем я хочу иметь возможность загрузить файл позже, и тот же список массивов снова появится там.

У меня есть два метода для этого (см. ниже) и пытались заставить его работать, но безуспешно, будем благодарны за любую помощь или совет.

Метод сохранения (имя файла выбирается пользователем)

Код: Выделить всё

public void save(String fileName) throws FileNotFoundException {
String tmp = clubs.toString();
PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
pw.write(tmp);
pw.close();
}
Метод загрузки (текущий код не запускается — файл представляет собой строку, но должен быть Club?

Код: Выделить всё

public void load(String fileName) throws FileNotFoundException {
FileInputStream fileIn = new FileInputStream(fileName);
Scanner scan = new Scanner(fileIn);
String loadedClubs = scan.next();
clubs.add(loadedClubs);
}
Я также использую графический интерфейс для запуска приложения, и в данный момент я могу нажать кнопку «Сохранить», которая затем позволяет мне ввести имя и местоположение и сохранить его. Файл появляется, и его можно открыть в Блокноте, но он отображается как Club@c5d8jdj (для каждого клуба в моем списке)

Вернуться в «JAVA»