Created
December 1, 2019 10:49
-
-
Save Romain-P/0ac2f0d3629ff46e65a6c2c201cc68f5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package fr.romain.ass3.persist; | |
import android.content.Context; | |
import java.io.ObjectInputStream; | |
import java.io.ObjectOutputStream; | |
import fr.romain.ass3.MainActivity; | |
public final class LocalStorage { | |
public static boolean save(Object data) { | |
Class<?> clazz = data.getClass(); | |
try (ObjectOutputStream stream = new ObjectOutputStream(MainActivity.context() | |
.openFileOutput(fileNameFactory(clazz), Context.MODE_PRIVATE))) | |
{ | |
stream.writeObject(data); | |
} catch (Exception e) { | |
return false; | |
} | |
return true; | |
} | |
public static <T> T load(Class<? extends T> clazz) { | |
try (ObjectInputStream stream = new ObjectInputStream(MainActivity.context() | |
.openFileInput(fileNameFactory(clazz)))) | |
{ | |
Object loaded = stream.readObject(); | |
return (T) loaded; | |
} catch (Exception e) { | |
return null; | |
} | |
} | |
private static String fileNameFactory(Class<?> clazz) { | |
return clazz.getSimpleName() + ".dat"; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment