diff --git a/src/com/annimon/everlastingsummer/IOUtil.java b/src/com/annimon/everlastingsummer/IOUtil.java index e279c9c..4e6765f 100644 --- a/src/com/annimon/everlastingsummer/IOUtil.java +++ b/src/com/annimon/everlastingsummer/IOUtil.java @@ -1,11 +1,17 @@ package com.annimon.everlastingsummer; import java.io.BufferedReader; +import java.io.DataInputStream; +import java.io.DataOutputStream; import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; +import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Environment; @@ -26,6 +32,35 @@ public final class IOUtil { return result; } + public static List listSaves(Context context) { + final String[] fileslist = context.fileList(); + final List saves = new ArrayList(fileslist.length); + for (String filename : fileslist) { + try { + saves.add(readSaveInfo(context, filename)); + } catch (IOException ioe) { + if (Logger.DEBUG) Logger.log("listSaves: " + filename, ioe); + } + } + return saves; + } + + public static SaveInfo readSaveInfo(Context context, String filename) throws IOException { + final InputStream is = context.openFileInput(filename); + final DataInputStream dis = new DataInputStream(is); + final SaveInfo result = SaveInfo.readFromStream(dis); + dis.close(); + return result; + } + + public static void writeSaveInfo(Context context, String filename, SaveInfo saveInfo) throws IOException { + final OutputStream os = context.openFileOutput(filename, Context.MODE_PRIVATE); + final DataOutputStream dos = new DataOutputStream(os); + saveInfo.writeToStream(dos); + dos.flush(); + dos.close(); + } + private static FileInputStream streamForFD; public static FileDescriptor getFD(String file) throws IOException { if (streamForFD != null) streamForFD.close();