Leer una ArrayList desde el almacenamiento interno

Tengo una aplicación para Android y me gustaría leer y escribir unArrayList<MyClass> al almacenamiento interno.

La parte de escritura funciona (creo, aún no la he probado :-)):

ArrayList<MyClass> aList;

    public void saveToInternalStorage() {
    try {
        FileOutputStream fos = ctx.openFileOutput(STORAGE_FILENAME, Context.MODE_PRIVATE);
        fos.write(aList.toString().getBytes());
        fos.close();
    }
    catch (Exception e) {
        Log.e("InternalStorage", e.getMessage());
    }
}

Pero lo que quiero hacer ahora es leer el ArrayList completo desde el almacenamiento y devolverlo como un ArrayList así:

public ArrayList<MyClass> readFromInternalStorage() {
        ArrayList<MyClass> toReturn;
        FileInputStream fis;
        try {
            fis = ctx.openFileInput(STORAGE_FILENAME);

            //read in the ArrayList
            toReturn = whatever is read in...

            fis.close();
        } catch (FileNotFoundException e) {
            Log.e("InternalStorage", e.getMessage());
        } catch (IOException e) {
            Log.e("InternalStorage", e.getMessage()); 
        }
        return toReturn
}

Nunca he leído en un archivo con Android antes, así que no sé si esto es posible. Pero hay una manera que puedo leer en mi costumbreArrayList?

Respuestas a la pregunta(1)

Su respuesta a la pregunta