Cómo guardar un objeto en un archivo en Android

private void saveState () {
FileOutputStream outStream = nulo;
tratar {
Archivo f = archivo nuevo (Environment.getExternalStorageDirectory (), “/data.dat”);
outStream = nuevo FileOutputStream (f);
ObjectOutputStream objectOutStream = nuevo ObjectOutputStream (outStream);

objectOutStream.writeObject (Global.spellList);
objectOutStream.close ();
} catch (FileNotFoundException e1) {
e1.printStackTrace ();
} catch (IOException e1) {
e1.printStackTrace ();
}

}
privado void loadState ()
{
SpellInfo [] s = nulo;
FileInputStream inStream = nulo;
tratar {
Archivo f = archivo nuevo (Environment.getExternalStorageDirectory (), “/data.dat”);
inStream = nuevo FileInputStream (f);
ObjectInputStream objectInStream = nuevo ObjectInputStream (inStream);

s = ((SpellInfo []) objectInStream.readObject ());
objectInStream.close ();
} catch (FileNotFoundException e1) {
e1.printStackTrace ();
} catch (ClassNotFoundException e1) {
e1.printStackTrace ();
} catch (OpcionalDataException e1) {
e1.printStackTrace ();
} catch (StreamCorruptedException e1) {
e1.printStackTrace ();
} catch (IOException e1) {
e1.printStackTrace ();
}
si (s! = nulo)
para (int i = 0; i <s.length; i ++)
{
Global.spellList [i] = s [i];
}
más
{
Log.e (“FALLO AL CARGAR”, “USTED CHUPA !!!!”);
}
}
Para cualquiera que quiera hacerlo

Muchas buenas respuestas aquí. Agregaré un método rápido y sucio. Use una biblioteca como jackson en gson para serializar el objeto en formato json. Escriba json en el archivo o preferencia compartida. Jackson lo hace fácil y es muy rápido en rendimiento.

Si simplemente desea conservar los datos, pero no desea que el archivo esté expuesto a otras aplicaciones, use las preferencias compartidas. Básicamente, también se guarda en un archivo privado, pero la API es más fácil de usar.

Soy un desarrollador de Java y tengo algunos conocimientos básicos en Android. Serializable es un método implementado en Java y también debería ser compatible con Android.
Esto es lo que obtuve de una búsqueda rápida en google.
Serializable | Desarrolladores de Android

Me di cuenta de algunos otros métodos para lograr lo mismo. Creo que deberías considerarlo dependiendo de tu requerimiento.

Almacenar objetos en Android

Puede usar el siguiente fragmento de código para escribir datos en el almacenamiento interno:

  tratar {
					 String message = "mensaje";
					 FileOutputStream fos = openFileOutput ("test.txt", Context.MODE_PRIVATE);
					 OutputStreamWriter outputWriter = new OutputStreamWriter (fos);
					 outputWriter.write (mensaje);
					 outputWriter.close ();
					 Toast.makeText (InternalStorageActivity.this,
							 "Datos escritos en test.txt en almacenamiento interno",
 
				 } catch (FileNotFoundException e) {
					 e.printStackTrace ();
				 } catch (IOException e) {
					 e.printStackTrace ();
				 }

Para ver el tutorial completo sobre cómo leer y escribir en el almacenamiento interno, puede ver este tutorial: http://androiddeft.com/2017/06/2

Espero esta ayuda, también estoy trabajando en un proyecto que necesita un método como este. 😀

TestScript de clase pública: MonoBehaviour {public void SaveEncodedFile () {string path = Application.persistentDataPath;

  File.WriteAllText (ruta + "/Testest.txt", testst.text);  } public void LoadEncodedFile () {string path = Application.persistentDataPath;  tests.text = File.ReadAllText (ruta + "/" + "TempName" + ".txt");  }

1. Haga que su objeto sea serializable / parcelable: hay un montón de ejemplos para hacer esto. Esto se asegura de convertir su Objeto en bytes y reconstruir el Objeto nuevamente desde un búfer de bytes.
Si su objeto es simple, puede implementar un método personalizado que convierta su objeto en una Cadena, XML, JSON y luego usar su propia lógica para construir los objetos nuevamente.

2. Una vez que su objeto es serializable, puede usar el código que Scott Becker ha publicado con modificaciones menores.