Member 14030302 Ответов: 2

Как я могу постоянно хранить данные списка массивов?


В настоящее время я пишу приложение командной строки, которое принимает входные данные от пользователя через терминал/командную строку и добавляет эти данные в список массивов, который затем добавляется в текстовый файл. Пользователь должен иметь возможность выполнять такие действия, как фильтрация содержимого по имени, индексу и т. д. Например, если пользователь хочет распечатать всех домашних животных, которые являются "собаками", все собаки и их данные должны быть напечатаны на терминале. Все это успешно работает с моей программой, но я столкнулся с проблемой.

Я использую методы геттера для выполнения фильтрации, которая примерно выглядит следующим образом.

if (pet.getPet().contains("dogs")) {

// print all dogs.

}


Насколько я понимаю, список массивов помещается в сборщик мусора при завершении процесса. Из-за этого данные теряются после каждого запуска, а методы геттера (и, в конечном счете, фильтрация) не работают должным образом при другом запуске (если это имеет смысл :) ).

С учетом сказанного, данные все еще соответствующим образом добавляются в текстовый файл, и поэтому мои попытки включали в себя попытку прочитать данные из текстового файла обратно в список массивов, но я не преуспел в этом. Независимо от того, включает ли это использование текстовых файлов или некоторых других методов, как я могу подойти к решению, чтобы сохранить данные в списке массивов постоянными, чтобы я все еще мог использовать методы геттера? Заранее спасибо.

С другой стороны, я хотел бы опубликовать свой код, но, учитывая, что это университетская оценка, мне посоветовали быть осторожным с кодом, который я публикую. Если потребуется больше деталей, я постараюсь сделать все возможное :)

Что я уже пробовал:

До сих пор я пытался использовать буферизованный считыватель для загрузки содержимого файла в 2d/вложенный список, который принимает строки, разбирая в него каждую строку файла. Это была моя лучшая попытка решить эту проблему с тех пор, как я успешно проанализировал содержимое файла в списке, но мне было трудно понять, как правильно добавить эти значения в исходный список массивов. Я также пытался использовать сериализацию, но наткнулся на ошибку, когда данные, добавленные в файл, не регистрировались при печати содержимого файла.

2 Ответов

Рейтинг:
2

Patrice T

Цитата:
Как я могу постоянно хранить данные списка массивов?

Короткий ответ: нет, по крайней мере напрямую.
По принципу, список массивов существует только до тех пор, пока программа работает, когда программа останавливается, массив убивается.
Единственный способ сделать его содержание постоянным-это сохранить массив в файле данных и перезагрузить массив из файла при повторном запуске программы.
Цитата:
Я хотел бы опубликовать свой код, но, учитывая, что это университетская оценка, мне посоветовали быть осторожным с кодом, который я публикую.

Чего ты боишься? Как вы думаете, Россия будет использовать ваш код для взлома английских ядерных ракет?


Рейтинг:
0

CPallini

Это выглядит по-твоему ArrayList потребности сериализация См., например: Как сериализовать и десериализовать ArrayList в Java - HowToDoInJava[^].