Skip to content

Instantly share code, notes, and snippets.

@Romain-P
Created December 1, 2019 10:49
Show Gist options
  • Save Romain-P/0ac2f0d3629ff46e65a6c2c201cc68f5 to your computer and use it in GitHub Desktop.
Save Romain-P/0ac2f0d3629ff46e65a6c2c201cc68f5 to your computer and use it in GitHub Desktop.
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