Ответ 1
Вам повезло, все члены вашего класса уже сериалы, поэтому ваш первый шаг - сказать, что Lecture Serializable.
public class Lecture implements Serializable {
public String title;
public String startTime;
public String endTime;
public String day;
public boolean classEnabled;
public Lecture(String title, String startTime, String endTime, String day, boolean enable){
this.title = title;
this.startTime = startTime;
this.endTime = endTime;
this.day = day;
this.classEnabled = enable;
}
Затем вам нужно создать конструктор по умолчанию, поскольку, похоже, требуется сериализация. Последнее, что вам нужно написать свой объект в файл. Обычно я использую что-то вроде следующего. Обратите внимание, что это для сохранения состояния игры, поэтому вы можете не использовать каталог кеша.
private void saveState() {
final File cache_dir = this.getCacheDir();
final File suspend_f = new File(cache_dir.getAbsoluteFile() + File.separator + SUSPEND_FILE);
FileOutputStream fos = null;
ObjectOutputStream oos = null;
boolean keep = true;
try {
fos = new FileOutputStream(suspend_f);
oos = new ObjectOutputStream(fos);
oos.writeObject(this.gameState);
}
catch (Exception e) {
keep = false;
Log.e("MyAppName", "failed to suspend", e);
}
finally {
try {
if (oos != null) oos.close();
if (fos != null) fos.close();
if (keep == false) suspend_f.delete();
}
catch (Exception e) { /* do nothing */ }
}
}
Чтение данных назад довольно симметрично для записи, поэтому я оставил это для этого ответа. Кроме того, по-прежнему существует много предостережений для объектов Serialized, поэтому я предлагаю вам выполнить некоторые поисковые запросы Google и прочитать о Java-сериализации в целом.