Formato predeterminado
La copia del código es la siguiente:
clase pública myClass implementa serializable {
...}
Publicación por entregas:
La copia del código es la siguiente:
ObjectOutputStream output = new ObjectOutputStream (new FileOutputStream (OutputPath));
output.WriteObject (myObject);
Deserialización:
La copia del código es la siguiente:
ObjectInputStream Input = new ObjectInputStream (new FileInputStream (inputPath));
return (myclass) input.readObject ();
Formato json
Use el paquete Jackson. Jackson es un paquete Java JSON muy eficiente. Consulte el sitio web oficial para obtener documentación y descargas.
Publicación por entregas
La copia del código es la siguiente:
ObjectMapper mapper = new ObjectMapper ();
mApper.WriteValue (nuevo archivo (outputPath), myObject);
Deserialización:
La copia del código es la siguiente:
return mapper.readValue (nuevo archivo (outputPath), myclass.class);
Código de prueba completo
La copia del código es la siguiente:
import java.io.file;
import java.io.fileInputStream;
import java.io.fileOutputStream;
import java.io.ioException;
import java.io.objectInputStream;
import java.io.objectOutputStream;
import java.io.serializable;
import java.util.arrayList;
import com.fasterxml.jackson.core.jsongenerationException;
import com.fasterxml.jackson.core.jsonparseException;
import com.fasterxml.jackson.databind.jsonmappingException;
import com.fasterxml.jackson.databind.objectMapper;
El zoológico de clase pública implementa serializable {
Private static final Long SerialVersionUid = 1L;
Private static ObjectMapper mapper = new ObjectMapper ();
Pública estática int maxanimalcount;
Public ArrayList <String> Animals;
Public Zoo () {
animales = new ArrayList <String> ();
}
public static void setmax (int max) {
maxanimalCount = max;
}
/**
* Agregue un animal a la matriz de animales.
* @param animalname
*/
public void addanimal (string animalName) {
if (animal.size () <maxanimalcount)
animales.add (animalname);
}
@Anular
public String toString () {
return "zoo: /n animales:" + animales.toString () +
"/n maxanimalcount:" + maxanimalcount + "/n";
}
/**
* Salida de serialización estándar para archivar en logPath.
* @param logpath
*/
public void Serializetolog (String logPath) {
ObjectOutputStream output = null;
intentar
{
salida = nuevo ObjectOutputStream (
nuevo FileOutputStream (logPath));
output.writeObject (esto);
} Catch (Exception e) {
E.PrintStackTrace ();
} finalmente {
intentar {
output.close ();
} Catch (ioException e) {
E.PrintStackTrace ();
}
}
}
/**
* Salida JSON Serialization (usando Jackson) para archivar en logPath.
* @param logpath
*/
public void SerializeJSontolog (String logPath) {
intentar {
mApper.WriteValue (nuevo archivo (logPath), esto);
} Catch (JSongenerationException e) {
E.PrintStackTrace ();
} catch (jsonMappingException e) {
E.PrintStackTrace ();
} Catch (ioException e) {
E.PrintStackTrace ();
}
}
/**
* Deserialice una instancia de zoológico estándar desde el archivo en logPath.
* @param logpath
* @return instancia del zoológico deserializado
*/
zoológico estático público deserializeFromLog (String logPath) {
ObjectInputStream input = null;
intentar
{
entrada = nuevo ObjectInputStream (
nuevo fileInputStream (logPath));
return (zoo) input.readObject ();
} Catch (Exception e) {
E.PrintStackTrace ();
} finalmente {
intentar {
input.close ();
} Catch (ioException e) {
E.PrintStackTrace ();
}
}
regresar nulo;
}
/**
* JSON Deserialice una instancia de zoológico desde el archivo en logPath.
* @param logpath
* @return json instancia de zoológico deserializado
*/
Public Static Zoo DeserializeJsonFromLog (String LogPath) {
intentar {
return mapper.readValue (nuevo archivo (logPath), zoo.class);
} Catch (JSONParseException e) {
E.PrintStackTrace ();
} catch (jsonMappingException e) {
E.PrintStackTrace ();
} Catch (ioException e) {
E.PrintStackTrace ();
}
regresar nulo;
}
}
clase ZooserializeTest {
public static void main (string [] args) {
Zoo zoo1 = new Zoo ();
Zoo.setmax (100);
zoo1.addanimal ("hámster");
zoo1.addanimal ("oveja");
zoo1.serializetolog ("zoo1.log");
Zoo zoo2 = new Zoo ();
Zoo.setmax (200);
zoo2.addanimal ("tigre");
zoo2.serializetolog ("zoo2.log");
Zoo.setmax (300);
// deserialización
zoo1 = zoo.deserializeFromLog ("zoo1.log");
zoo2 = zoo.deserializeFromLog ("zoo2.log");
System.out.println ("zoo1: /n" + zoo1);
System.out.println ("zoo2: /n" + zoo2);
// Serializar a JSON
zoo1.serializeJSontolog ("zoo1.json");
zoo1 = zoo.deserializeJsonFromLog ("zoo1.json");
System.out.println ("Zoo1 desde JSON: /N" + ZOO1);
}
}