Вы делаете это правильно, но есть возможности для улучшения. Во-первых, вы должны использовать средство регистрации Android (android.util.Log
), а не e.printStackTrace()
. Кроме того, если ваш minSdkLevel является 19 или больше, я рекомендую вам использовать try-with-resources заявление:
try (ObjectOutputStream objOut = new ObjectOutputStream(new
FileOutputStream("data.dat")))
{
objOut.writeObject(var_1);
objOut.writeObject(var_2);
} catch (Exception e) {
Log.e(LOG_TAG, "Could not save data", e);
}
(LOG_TAG
лишь некоторые String
вы определяете, чтобы определить выход вашего класса.) Если вы не можете использовать примерочные с -ресурсы, я рекомендую использовать пункт finally
закрыть поток:
ObjectOutputStream objOut = null;
try {
objOut = new ObjectOutputStream(new FileOutputStream("data.dat"))
objOut.writeObject(var_1);
objOut.writeObject(var_2);
} catch (Exception e) {
Log.e(LOG_TAG, "Could not save data", e);
} finally {
if (objOut != null) {
try {
objOut.close();
} catch (Exception e) {
Log.e(LOG_TAG, "Could not close output file", e);
}
}
}
Это гарантирует, что выходной поток закрывается, даже если исключение в вызовах writeObject
.
Чтобы прочитать данные, просто откройте ObjectInputStream
в тот же файл и прочтите данные в том же порядке, в котором вы их ввели.