Вот альтернатива. Сериализуйте файл до getFilesDir()
и получите его оттуда. Таким образом, вам будет легко сериализовать и десериализовать.
Чтобы проверить, существует ли файл в getFilesDir()
:
boolean doesMyFileExists(Activity activity, String fileName) {
File[] files = activity.getFilesDir().listFiles();
for(File i: files) {
if(i.getName().equals(fileName)) {
return true;
}
}
return false;
}
Для сериализации объекта (MyObject):
void serializeObject(Activity activity, MyObject myObject, String fileName){
try {
FileOutputStream fos = activity.openFileOutput(fileName, Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(myObject);
oos.close();
fos.close();
}
catch(Exception e) {
//Catch all possible exceptions here
}
}
Для десериализации объекта (MyObject):
MyObject deserializeObject(Activity activity, String fileName){
try {
return ((MyObject) (new ObjectInputStream(activity.openFileInput(fileName)).readObject()););
}
catch(Exception e) {
//Catch all possible exceptions here
}
}
ПРИМЕЧАНИЕ. Класс, содержащий эти методы, должен реализовывать интерфейс Serializable
.
Надеюсь, это поможет, веселое кодирование!